objective-c - 使用 popViewController Animated 时调用 viewDidLoad

标签 objective-c ios uinavigationcontroller

我正在使用 UINavigationController 在类之间导航。当我在第一个 View 上按下按钮将我发送到第二个 View 时,一切正常。但是当我不想从第二个 View 返回到第一个 View 时,viewDidLoad 方法没有被调用,我真的需要它发生。

根据 this post ,我应该以某种方式将我的 View 设置为 nil 但我不确定在哪里或如何做。这是我用来返回第一个 View 的代码:

NewSongController *nsContr = [[NewSongController alloc] initWithNibName:@"mNSController" bundle:nil];
[self.navigationController popViewControllerAnimated:YES];
[nsContr release];

最佳答案

您的代码不正确。

您不需要实例化您的第一个 Controller 来弹出它。它已经存在。

viewDidLoad 只会在您第一次加载 viewController 时运行(即,当您向它推送时)。当您推送到其他 Controller 时,它们会被放入堆栈(想象一叠卡片)。当您将另一张卡片插入堆叠时,其下方的卡片已经存在。

弹出时就像从堆栈中取出一张卡片。但是下面的卡已经在那里了,所以不需要再次加载。它所做的只是运行 viewWillAppear。

要弹回,您需要做的就是...

[self.navigationController popViewControllerAnimated:YES];

就是这样。

删除有关 NewSongController 的内容(如果这是您要返回的内容)。

然后在 NewSongController 函数 - (void)viewWillAppear:animated; 中放入您想要在返回时运行的代码。

希望对您有所帮助。

关于objective-c - 使用 popViewController Animated 时调用 viewDidLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12517173/

相关文章:

iOS:本地化独立于 iPad 语言设置的应用程序

ios - 保持模态视图行被勾选

Swift 性能 Segue 和导航 Controller

UINavigationController 布局在呈现模态后损坏

ios - 导航栏标题 - 更改字体而不更改大小

objective-c - Finder 从哪里获取文件夹中项目的 "date added"?

ios - Swift 中具有固定返回类型的子类 objc 数组中需要进行强制转换

iOS swift UIBarButtonItem 操作

iphone - 第一次使用协议(protocol) - Objective-C

iphone - NSString 中的原始字节使用什么编码