首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >presentModalViewController问题

presentModalViewController问题
EN

Stack Overflow用户
提问于 2010-12-30 16:13:06
回答 2查看 1.2K关注 0票数 0

我正在编写一个iPhone应用程序,您需要在开始时对其进行身份验证。因此,只要应用程序加载到viewDidLoad中,我就会分配一个负责注册和身份验证的UIViewController,并将其表示为:

代码语言:javascript
复制
- (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中时,它不起作用!

这里我漏掉了什么?我希望这个过程在视图加载时自动进行,而不是通过按一下按钮来完成。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-02 07:22:16

在尝试和搜索深度网络之后,我找到了解决方案。将相同的代码放在viewDidAppear中,而不是viewDidLoad中,因为视图还不能初始化。

票数 1
EN

Stack Overflow用户

发布于 2010-12-30 20:10:42

我碰巧有一个和上面的代码几乎完全一样的代码,它工作得很好。尝试这样做:

代码语言:javascript
复制
- (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.
 }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4561033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档