Swift ios7 故事板 - 自己启动主场景

Swift ios7 storyboard - launch main scene myself

如果可能的话,我想从头到尾控制哪些场景是可见的。

我是 iOS 的新手,但决定继续使用故事板,因为这似乎是事情的发展方向。

从我自己的角度来看,我将把它视为一种在一个地方设计多个场景的工具,但我想在我自己的代码中控制转换。 (我正在从另一种已经管理和跟踪逻辑流本身的语言和工具移植)

这引出了我的问题 - 我更愿意在启动时 load/choose 我自己的 first/primary 场景和 "launch" 我自己。我怎样才能最好地做到这一点?

是的,你可以做到。对于每个故事板,您都有一个初始视图控制器,故事板中的每个视图控制器都有一个唯一的标识符。因此,在代码中创建视图控制器的对象时,您只需指定要创建的视图控制器的标识符即可。

启动画面后可见的第一个场景是根视图控制器,您也可以通过编程方式创建它,并且可以使用该视图控制器的标识符从情节提要中加载它。您也可以在不使用任何标识符的情况下从故事板加载,但在这种情况下它会加载初始视图控制器。

您可以像上面那样在故事板中为视图控制器设置标识符。

如果你想让任何视图控制器首先显示,那么只需在故事板中单击你的视图控制器,然后单击初始视图控制器

来自代码(在 AppDelegate 中)

Swift

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)

    var storyboard = UIStoryboard(name: "Main", bundle: nil)

    var initialViewController = storyboard.instantiateViewControllerWithIdentifier("LoginSignupVC") as! UIViewController

    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()

    return true
}

Objective C

   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

UIViewController *viewController = // determine the initial view controller here and instantiate   it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];

self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];

return YES;
}