gpt4 book ai didi

iphone - UINavigationController 和 viewWillDisappear

转载 作者:可可西里 更新时间:2023-11-01 17:12:08 24 4
gpt4 key购买 nike

所以我的应用程序中有一个 UINavController 并且我试图在用户按下后退按钮时执行一个方法。我到处搜索,只能找到断章取义的零碎内容。

有没有一种方法可以实现某种检查,在用户按下后退按钮关闭当前 View 时进行捕获? (用于弹出 View 的 viewWillDisappear 方法由于某种原因永远不会被调用。我确实读到它不会除非您转发该调用?)听起来是否正确,有没有人有任何想法或建议?提前致谢。

最佳答案

看看 UINavigationControllerDelegate。当 UIViewController 被推送到导航 Controller 堆栈时,只有两种方法会被调用。类似地,如果有人被插入,那么可能只是弹出了一些东西。这就是我调用 viewDidDisappear 和 viewWillDisappear 所做的。

# pragma mark - UINavigationControllerDelegate Methods

- (void)navigationController:(UINavigationController *)navigationController
willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
static UIViewController *vcPointer = nil;

// If the previous view controller is still around then let's send a viewWillDisappear message
if (vcPointer != nil) {
if ([vcPointer respondsToSelector:@selector(viewWillDisappear:)]) {
[vcPointer viewWillDisappear:animated];
}
}

// Keep track of a pointer to the current viewController
vcPointer = viewController;

[viewController viewWillAppear:animated];
}

此代码保留指向最后一个被推送的 View Controller 的指针引用,这样一旦我们推送另一个 View Controller ,我们就可以弹出最后一个(如果它仍然存在)。

关于iphone - UINavigationController 和 viewWillDisappear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4072192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com