如何在当前视图控制器上添加模态视图?
Posted
技术标签:
【中文标题】如何在当前视图控制器上添加模态视图?【英文标题】:How to add a modal view onto current view controller? 【发布时间】:2012-07-16 13:47:15 【问题描述】:我有这个代码:
-(void)applicationDidBecomeActive:(UIApplication *)application
JUnlockController *passcodeView = [[JUnlockController alloc] init];
[self.navigationController presentModalViewController:passcodeView animated:YES];
问题是,当我在我的应用程序中打开一个模态视图控制器时,它不会出现在它上面。我希望能够找出用户正在查看的当前视图控制器,以便将其显示在上面。
【问题讨论】:
取自您的代码,据我所知,您提供了一个“香草”,意思是一个空的视图控制器。您如何定义该视图控制器中的视图?在 init 方法中还是在 loadView 方法中?还是在 Interface Builder 中? 显示什么而不是您要显示的视图? 【参考方案1】:代替:
[self.navigationController presentModalViewController:passcodeView animated:YES];
使用:
[self presentModalViewController:passcodeView animated:YES];
【讨论】:
【参考方案2】:如果您的应用仅由该导航控制器导航,您可以询问哪个 viewController 可见:
[self.navigationController.visibleViewController presentModalViewController:passcodeView animated:YES];
否则,您可以利用UIApplicationDidBecomeActiveNotification,让您的所有视图控制器扩展一个自定义类,该类在viewWillAppear
上为此注册并在viewWillDissapear
中取消注册;并在您的自定义基类中实现显示模式的回调。
edit 请注意,这假设您的应用委托(由您设置)中有一个self.navigationController
。您可能需要改用 self.window.rootViewController
之类的东西。
【讨论】:
以上是关于如何在当前视图控制器上添加模态视图?的主要内容,如果未能解决你的问题,请参考以下文章