ios - 为什么setViewControllers不触发viewWillDisappear和dealloc?

标签 ios objective-c uiviewcontroller uinavigationcontroller

如果我不在 [detailNavigationController setViewControllers:...] viewControllers 之前添加 [detailNavigationController popToRootViewControllerAnimated:NO] 那些被推送到 setViewControllers 不会收到 viewWillDisappear 并且不会被释放。我检查并转发了 viewWillAppearviewDidAppear 等。我还尝试添加 automaticallyForwardAppearanceAndRotationMethodsToChildViewControllers 并分别添加 shouldAutomaticallyForwardAppearanceMethods 返回 YES(即使默认值已经是 YES)。那些也不起作用。

我可能做错了什么?

最佳答案

在设置ViewControllers之前在viewcotroller上调用autorelease

TestViewController * testView = [[[TestViewController alloc]initWithNibName @"TestViewController" bundle: nil]autorelease];
[self.navigationcontroller setViewControllers: @[testView] animated: YES];

关于ios - 为什么setViewControllers不触发viewWillDisappear和dealloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24473501/

相关文章:

ios - JWPlayer 错误代码列表

java - 通过wifi发送NSData到Java Server

objective-c - 如何将未知类( Controller )作为 AnyObject 分配给其他类的委托(delegate)?在 swift

iphone - 如何在没有导航 Controller 的情况下使用多个 iOS 自定义 View Controller

ios - 从循环更新 View

ios - 由于 FOR 循环,从数据库中获取核心数据失败

objective-c - 通过代码添加和设置 NSLayoutConstraint

objective-c - UIViewController 检查是否显示模态视图?

ios - 向 SwiftUI TextField 添加不可编辑的后缀

ios - NSUserDefaults在iOS中的哪里存储数据?