ios - 如何检测是否从导航 Controller 弹出 View Controller ?

标签 ios objective-c cocoa-touch uiviewcontroller uinavigationcontroller

当顶 View Controller 从我的导航 Controller 中弹出时,我目前需要实现一些代码。有没有办法检测 View Controller 何时从导航 Controller 堆栈中弹出?

我想尽可能避免使用 viewWillDisappearviewDidDisappear 因为我在我的项目中使用了 splitview,并且在主视图中选择不同的行也会触发 viewWillDisappear/viewDidDisappear 方法。

最佳答案

您可以使用 View Controller 的 isMovingFromParentViewController 属性检测是否正在弹出 View ,如下所示:

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
    if ([self isMovingFromParentViewController])
    {
        NSLog(@"View controller was popped");
    }
    else
    {
        NSLog(@"New view controller was pushed");
    }
}

isMovingFromParentViewController

Returns a Boolean value that indicates that the view controller is in the process of being removed from its parent.

关于ios - 如何检测是否从导航 Controller 弹出 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21915249/

相关文章:

iphone - 如何在以编程方式创建的 UILabel 上添加 padding-left?

ios - 特定用户信息的 Firebase 查询不起作用。我该如何解决这个问题?

objective-c - NSOperation 和 ARC 中 NSManagedObjectContext 保存方法上的 EXC_BAD_ACCESS,为什么?

带有外部 Web 内容的 iOS 弹出/闪屏

iphone - 尝试实现委托(delegate)继承

ios - UIActivityViewController 排除所有 UIActivityCategoryAction

ios - WKWebView 在本地网页加载时挂起,具有特定的 Web 配置。

iOS:快速滚动照片时出错?

ios - 具有动态高度的 UITableView

iphone - 尝试通过 iPhone 模拟器播放声音