我正在编写一个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的苹果示例。当一个按钮被点击时,它显示了一个使用presentModalViewController的视图,当我将它添加到ViewDidLoad中时,它不起作用!
这里我漏掉了什么?我希望这个过程在视图加载时自动进行,而不是通过按一下按钮来完成。
谢谢!
发布于 2011-01-02 07:22:16
在尝试和搜索深度网络之后,我找到了解决方案。将相同的代码放在viewDidAppear中,而不是viewDidLoad中,因为视图还不能初始化。
发布于 2010-12-30 20:10:42
我碰巧有一个和上面的代码几乎完全一样的代码,它工作得很好。尝试这样做:
- (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.
}https://stackoverflow.com/questions/4561033
复制相似问题