viewWillAppear未调用

时间:2011-01-12 19:45:34

标签: iphone

这是在显示模式对话框的viewcontroller的视图中点击按钮时执行的代码:

-(IBAction)presentModally:(id)sender {  

if (self.nvc == nil) {
MyModalViewController *vc = [[MyModalViewController alloc] init];
UINavigationController *navvc = [[UINavigationController alloc] initWithRootViewController:vc];
navvc.navigationItem.prompt = @"";
navvc.navigationBar.barStyle = UIBarStyleBlack;
[vc release];
self.nvc = navvc;
[navvc release];
}
}

[self presentModalViewController:self.nvc animated:YES];

如果每次出现视图时,如果一切正确,则此代码应该显示。

- (void)viewDidLoad {
[super viewDidLoad];

NSLog(@"test");
}

当我评论检查Ivar是否为nil的if语句时,调用viewWillAppear方法。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

安德烈亚斯,

不确定你是否在混淆viewDidLoad和viewWillAppear?每次出现视图时都不会调用viewDidLoad代码,仅在加载时调用。

此外,将导航控制器显示为模态视图对我来说似乎是一件奇怪的事情 - 模态视图的全部意义在于它们会阻止用户在完成某项任务时导航,例如发送电子邮件链接,然后他们解雇它并回到原来的位置。