【发布时间】:2010-03-08 14:00:47
【问题描述】:
我正在为我当前的 iPhone 应用程序编写一个“加载”功能。
实际上我想做的就是让用户回到他/她离开的地方。为此,我想重新创建之前出现的所有 UIViewControllers。
我的问题是UIViewControllers 不会出现,如果我只是调用[[self navigationController] pushViewController:newController animated:YES];。
当作为事件处理程序调用时,相同的代码可以正常工作,例如在触摸按钮之后。但是如果我在没有偶数的情况下做同样的事情(例如在viewDidLoad 中),新视图控制器的loadView 方法将不会被调用。
我的实际代码(带有一些伪元素):
- (void)viewDidLoad {
[super viewDidLoad];
if (loading)
[self onSomeEvent];
}
- (void)onSomeEvent {
UIViewController *newController = //init....;
[[self navigationController] pushViewController:newController animated:YES];
[newController release];
}
我猜viewDidLoad 不适合打这样的电话,但那又是什么呢?
【问题讨论】:
-
当用户再次运行应用程序时,您是否尝试恢复应用程序的状态?看看这个答案是否有帮助:stackoverflow.com/questions/2360578/…
标签: iphone uiviewcontroller viewdidload loadview