ios - viewDidAppear 选项卡切换 vs nav pop

标签 ios objective-c cocoa-touch

有什么方法可以区分我的 View Controller viewDidAppear 方法是在用户切换选项卡后调用还是在导航 Controller 弹出后调用?

谢谢

最佳答案

viewWillAppear 和 viewDidAppear 都会在 navigation pop 和 tabbar switch 时被调用,你可以通过使用 tab bar delegate 方法来区分它(如果你还没有实现它)

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item

可以在这里设置一个 Bool 什么的。

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
     YOUR_VIEW_STATUS = YES;
}

-(void)viewWillAppear:(BOOL)animated
{
    [self viewDidAppear:YES];

    if(!YOUR_VIEW_STATUS)
    {  
    //navigation pop or push
    }

    else
    {
    //tab bar switch
    }
}

关于ios - viewDidAppear 选项卡切换 vs nav pop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17694462/

相关文章:

objective-c - Objective C 和 Cocoa Touch 中的循环导入问题

通过 Safari 的 iOS SSO : Can't log out/switch user any more

ios - 符合静态方法协议(protocol)的纯 Swift 类 - 向上转换问题

iPhone应用程序 : How do they do that?

Objective-C,动画 block 随机化

ios - 如何在 TableView 中实现搜索(使用 FRC)

android - 计算软件键盘高度 - iOS 和 Android

iphone - iPhone 5S 和 5C 的平台字符串是什么?

ios - UIStackView 竞争条件?

objective-c - 分析 Objective-C 二进制图像大小