在加载视图之前设置一个新的window.rootViewController

时间:2012-11-15 14:17:09

标签: objective-c ios5 uiviewcontroller uinavigationcontroller ios6

所以我正在尝试在我的应用中安装此导航框架:

https://github.com/weissi/FRLayeredNavigationController

http://www.youtube.com/watch?v=k9bFAYtoenw&feature=plcp

现在,如果您查看附件图片,我就有了登录屏幕。登录完成后,我将Segue Modal推送到我的“主页”页面,在那里,我想在到达我的主页后开始使用FRLayeredNavigationController。使用故事板时可以吗?根据Youtube视频,人们通常会使用FRLayeredNavigationController:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        // Override point for customization after application launch.

        HomeViewController* homeController = [[HomeViewController alloc] init];
        FRLayeredNavigationController* lnc = [[FRLayeredNavigationController alloc] initWithRootViewController:homeController];

        self.window.rootViewController = lnc;
    }



   [self.layeredNavigationController pushViewController:vc inFrontof:self maximumWidth:NO animated:YES];

enter image description here

1 个答案:

答案 0 :(得分:2)

我没有使用Segue的方法来实现这一点......但我完成此任务的方式如下:

提供登录成功并且您想要转移到应用程序的下一部分,然后以下是您将如何转换:

- (void)loginSucceeded
{
    UIViewController * vc = (UIViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"someIdentifier"];
    FRLayeredNavigationController * nav = [[FRLayeredNavigationController alloc] initWithRootViewController:vc configuration:^(FRLayeredNavigationItem *item) {
        item.width = 300;
        item.nextItemDistance = 90;
    }];
    [self presentViewController:nav animated:YES completion:nil];
}

您需要将Storyboard ID设置为上述方法中指定的ID。在查看故事板并选择您设计的ViewController时,可以在“Identity Inspector”选项卡中找到它。

此外,您将不再需要执行之前创建的segue,因此请删除它。

您想要“推”到屏幕上的任何未来视图控制器,您只需要调用以下内容:

UIViewController * vc = (UIViewController*)[self.storyboard instantiateViewControllerWithIdentifier:@"SomeStoryboardIDHere"];
[self.layeredNavigationController pushViewController:vc inFrontOf:self maximumWidth:YES animated:NO];