【问题标题】: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 中?
  • 显示什么而不是您要显示的视图?

标签: iphone objective-c ios uiviewcontroller modalviewcontroller


【解决方案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 之类的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-13
      相关资源
      最近更新 更多