首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ModalViewController中演示ModalViewController

在ModalViewController中演示ModalViewController
EN

Stack Overflow用户
提问于 2011-08-23 23:28:42
回答 2查看 226关注 0票数 0

我有一个视图,它被呈现为一个模态视图控制器,它接受用户名和密码凭据。我希望这个视图检查代理,如果用户之前没有为应用程序设置解锁pin,则将change pin视图显示为模式视图控制器。这是我的代码。

代码语言:javascript
运行
复制
+(void)presentCredentialsViewController:(UIViewController *)vc{
    CredentialsViewController *cvc = [[CredentialsViewController alloc] init];
    [vc presentModalViewController:cvc animated:FALSE];
}

然后在CredentialsViewController中

代码语言:javascript
运行
复制
-(void)viewDidLoad{
    [super viewDidLoad];
    if([appDelegate.pin isEqualToString: @""]){
        UserPrefsViewController *upvc = [[UserPrefsViewController alloc] init];
        upvc.cancelButton.hidden = true;
        [self presentModalViewController:upvc animated:FALSE];
    }
}

但由于某些原因,它不起作用。调试器遍历代码时不会出错,也不会显示第二个模式视图控制器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-24 00:24:01

首先,我建议检查您的appDelegate.pin是否为空,而不是nil。如果它是空的,If语句将不会被满足,并且您的第二个ModalView将不会被呈现。

您可能还想尝试前面的建议,从viewDidAppear调用presentModalViewController,或者如果将其留在viewDidLoad中,则设置延迟。有可能CredentialsViewController正在尝试呈现第二个视图,而它还没有呈现自己。

票数 2
EN

Stack Overflow用户

发布于 2011-08-24 16:48:28

if语句正在被命中,第二个PresentModalViewController正在执行,没有错误,但它就是没有显示。我确实尝试过将代码放在ViewDidAppear和其他很多地方,比如applicationWillBecomeActive等。虽然这些方法都不会导致代码崩溃,但它们都不会显示视图控制器。最后,我选择了这个:

代码语言:javascript
运行
复制
start with pin of @""
on applicationDidEnterBackground check if pin has been set
if yes
PresentModalViewController: PinViewController
if no
do nothing

这是一个小技巧,但现在就可以了。我想我应该在某个地方放置某种通知,警告还没有设置引脚。我想,关于延期的建议可能会奏效。我可能会在未来试一试。感谢guys....points up!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7163558

复制
相关文章

相似问题

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