我有这段代码:
-(void)applicationDidBecomeActive:(UIApplication *)application {
JUnlockController *passcodeView = [[JUnlockController alloc] init];
[self.navigationController presentModalViewController:passcodeView animated:YES];
}
问题是,当我在我的应用程序中打开模态视图控制器时,它不会出现在它上面。我希望能够找出用户正在查看的当前viewcontroller,因此我可以将其显示在那里。
答案 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
的内容。