这是在显示模式对话框的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方法。有什么想法吗?
答案 0 :(得分:3)
安德烈亚斯,
不确定你是否在混淆viewDidLoad和viewWillAppear?每次出现视图时都不会调用viewDidLoad代码,仅在加载时调用。
此外,将导航控制器显示为模态视图对我来说似乎是一件奇怪的事情 - 模态视图的全部意义在于它们会阻止用户在完成某项任务时导航,例如发送电子邮件链接,然后他们解雇它并回到原来的位置。