如何在iOS应用程序中导航



我在应用程序中有一个屏幕(登录),可以从任何其他屏幕中显示我想将启动该屏幕的逻辑放在我的ViewControllers外面,因此不会重复

这是可能的吗?

我收到的NSNotificationCenter通知消息也可以加载此屏幕

所以,我将其放入控制器中,每个视图控制器都调用此控制器执行登录。当请求登录时,将请求的视图控制器(或其父级(如果不是全屏))作为参数。

现在,当需要显示登录视图时,您有一种从"登录控制器"内部显示的通用方法。请求视图控制器对"登录控制器"一无所知,而"登录控制器"对请求视图控制器一无所知。

当通过通知触发时,应用程序委托可以从应用程序窗口获取root View Controller,并将其作为请求视图控制器传递。

您只需为您的登录屏幕创建一个ViewController,并在"身份检查器"下给它一个"故事板ID"。当您想显示时,您可以这样实例化:

    loginViewController = [[self storyboard] instantiateViewControllerWithIdentifier:@"storyboardID"];

之后,如果您使用的是NavigationController,则可以将其推开,也可以将其添加为子视图。

edit :我如何知道是否存在:

 NSArray *controllers = self.navigationController.viewControllers;
    for (UIViewController* controller in controllers)
    {
        if ([controllers isKindOfClass:[LoginController class]])
        {
            NSLog(@"is already present");
        }
    }

相关内容

  • 没有找到相关文章

最新更新