使您的自定义视图控制器成为根IOS

时间:2014-03-12 18:12:13

标签: ios objective-c

我有一个使用导航控制器的主视图控制器,我正在制作我的应用程序。现在我想为我的应用程序添加一个欢迎视图控制器,并使其首先显示而不是我的主视图控制器。有没有办法做到这一点。

我所做的是在我的故事板中添加一个视图控制器,并添加了两个同名的类,然后我将它作为我的根视图控制器,并从主视图中取消选中根视图控制器,但它没有显示在窗口上。请帮助我,如何让我的欢迎视图出现在主视图控制器之前。感谢

3 个答案:

答案 0 :(得分:1)

在Interface Builder中,在属性部分(看起来像一个小滑块)下约四分之一的设置列表,有一个标有“View Controller”的部分。该部分中的第二项是“是初始视图控制器”复选框,选中该框,您应该看到故事板的起始箭头移动到指定的视图控制器,应用程序应该启动到该页面。

希望这有助于。

答案 1 :(得分:0)

您可以通过设置应用程序窗口的rootViewController以编程方式执行此操作。从app delegate的应用程序:didFinishLaunchingWithOptions:

- (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    UIScreen *mainScreen = [UIScreen mainScreen];

    self.window = [[KTAppWindow alloc] initWithFrame:mainScreen.bounds];
    [window makeKeyAndVisible];

    window.rootViewController = [[WelcomeViewController alloc] init];
    return YES;
}

然后,您只需设置触发器即可从“欢迎”视图切换到主视图。例如,这可能是安排NSTimer。无论触发器是什么,一旦发生,只需将窗口的rootViewController实例更改为MainViewController。

我希望这会有所帮助。

答案 2 :(得分:0)

它称为“启动画面”,您只需在故事板中添加一个新的ViewController,或者如果您没有添加导航控制器。

在Splash类中,在viewDidLoad方法中需要输入:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    HomeViewController *vc = [sb instantiateViewControllerWithIdentifier:@"Home"];
    [[[[UIApplication sharedApplication] delegate] window] setRootViewController:vc];


    [self performSegueWithIdentifier:@"Home" sender:self];

这里你可以根据需要添加条件