如何将模态视图添加到当前视图控制器?

时间:2012-07-16 13:47:15

标签: iphone objective-c ios uiviewcontroller modalviewcontroller

我有这段代码:

-(void)applicationDidBecomeActive:(UIApplication *)application {
JUnlockController *passcodeView = [[JUnlockController alloc] init];
[self.navigationController presentModalViewController:passcodeView animated:YES];
}

问题是,当我在我的应用程序中打开模态视图控制器时,它不会出现在它上面。我希望能够找出用户正在查看的当前viewcontroller,因此我可以将其显示在那里。

2 个答案:

答案 0 :(得分:3)

而不是:

[self.navigationController presentModalViewController:passcodeView animated:YES];

使用:

[self presentModalViewController:passcodeView animated:YES];

答案 1 :(得分:2)

如果您的应用仅由该导航控制器导航,您可以询问它是哪个viewController可见:

[self.navigationController.visibleViewController presentModalViewController:passcodeView animated:YES];

否则你可以利用UIApplicationDidBecomeActiveNotification让你的视图控制器扩展一个自定义类,在viewWillAppear上注册这个,并在viewWillDissapear中取消注册;并在您的自定义基类中实现显示模态的回调。

修改请注意,这假设您的应用委托中有self.navigationController(您已设置)。您可能需要使用类似self.window.rootViewController的内容。