0

我正在编写一个您需要在开始时进行身份验证的 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 时,它不起作用!

我在这里想念什么?我希望该过程在视图加载时自动进行,而不是通过按一下按钮。

谢谢!

4

2 回答 2

1

在玩耍并搜索深层网络后,我找到了解决方案。将相同的代码放入viewDidAppear而不是 viewDidLoad 因为视图还不能初始化。

于 2011-01-01T23:22:15.870 回答
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.
 }
于 2010-12-30T12:10:41.967 回答