我正在编写一个iPhone应用程序,您需要在开始时进行身份验证。 因此,只要在viewDidLoad中加载应用程序,我就会分配一个负责注册和身份验证的UIViewController,并且我这样表示:
- (void)viewDidLoad {
[super viewDidLoad];
self.registerProfile = [[[RegisterViewController alloc] initWithNibName:@"RegisterProfile" bundle:nil] autorelease];
[self presentModalViewController:self.registerProfile animated:YES];
[self.registerProfile release];
}
由于某种原因,从viewDidLoad调用它时它不起作用。 但是,如果我在该视图上创建一个按钮并在上面附加相同的代码,当我点击它时, 它有效并且呈现了视图。
任何想法为什么它不能在viewDidLoad上工作并且使用按钮呢?
我还测试了一个名为NavBar的Apple示例。当单击一个按钮时,它使用presentModalViewController呈现一个视图,当我将它添加到ViewDidLoad时,它不起作用!
我在这里缺少什么?我希望在加载视图时自动执行该过程,而不是按下按钮。
谢谢!
答案 0 :(得分:1)
在玩完并搜索深层网络后,我找到了解决方案。 将相同的代码放在 viewDidAppear 中,而不是viewDidLoad,因为视图无法初始化。
答案 1 :(得分:0)
我碰巧有一个与上面几乎完全相同的代码,它运行正常。尝试这样做:
- (void)viewDidLoad {
[super viewDidLoad];
self.registerProfile = [[[RegisterViewController alloc] initWithNibName:@"RegisterProfile" bundle:nil] autorelease];
registerProfile.delegate = self; //set delegate as yourself
[self presentModalViewController:self.registerProfile animated:YES];
//[self.registerProfile release]; //don't worry about releasing it, it's been autoreleased.
}