如何在iOS应用程序中导航

时间:2014-01-28 15:49:42

标签: ios navigation

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

这可能吗?

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

2 个答案:

答案 0 :(得分:1)

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

现在,当需要显示登录视图时,您可以通过一种通用的方式从登录控制器内部呈现它['请求视图控制器对“登录控制器”一无所知。和登录控制器'对请求的视图控制器一无所知。

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

答案 1 :(得分:0)

您可以为登录屏幕创建一个ViewController,并在“身份检查器”下为其提供“故事板ID”。 当你想要显示它时,你可以像这样实例化它:

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

之后,如果您使用的是navigationController,则可以将其推送或将其添加为子视图。

编辑:我怎么知道它是否存在:

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