gpt4 book ai didi

objective-c - 更改 navigationController.delegate 会导致访问错误

转载 作者:可可西里 更新时间:2023-11-01 03:57:31 25 4
gpt4 key购买 nike

这听起来可能是个新手问题,但我是 iOS 开发新手。

我在 navigationController 中推送了一个 View ,假设它是第三个推送的 View 。在该 View 中,我设置了 self.navigationController.delegate = self;。我更改了委托(delegate),因为我需要处理用户转到上一个 View 时的情况,即从当前 View 弹出。

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if ([[viewController class] isEqual:[MainViewController class]]) {
...
}
}

它工作正常,但是当我弹出当前 View 并再次按下导航后退按钮(即切换到第一个推送的 View )时,我遇到了错误的访问错误。

那么我缺少什么?处理导航后退按钮按下的正确方法是什么?

最佳答案

这是因为导航 Controller 向弹出和释放的 View Controller 发送消息,每次弹出和推送时都必须设置委托(delegate)。还要将 self.navigationController.delegate = nil; 添加到 viewController 的 dealloc 方法中。

关于objective-c - 更改 navigationController.delegate 会导致访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8018972/

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