2016-01-30 65 views
1

我想控制,如果可能的,這場面是可見自己從A到Z的主場景。斯威夫特ios7故事板 - 推出自己

我是新來的iOS,但決定去用故事板,因爲它似乎是事情正在前進的方向。

從我自己的角度來看,我會認爲這是在一個地方設計多個場景的工具,但我婉控制transiions在我自己的代碼。 (我正在從另一種語言和工具移植到已經管理和跟蹤邏輯流程本身)

這使我想到我的問題 - 我希望在啓動時自己加載/選擇我的第一個/主要場景,並自己「啓動」 。我如何最好地做到這一點?

回答

2

是的,你能做到這一點。對於每個故事板,您都有一個初始視圖控制器,故事板中的每個視圖控制器都有一個唯一的標識符。因此,在代碼中創建視圖控制器對象時,您可以指定要創建的視圖控制器的標識符。

第一場景是可見的後初始屏幕是根視圖控制器,其也可以編程方式創建,並且可以從故事板使用標識符爲該視圖控制器被加載。您也可以從故事板加載而不使用任何標識符,但在這種情況下,它會加載初始視圖控制器。

Identifier

可以在故事板設置視圖控制器標識符等的上方。

+0

目前我在Main.storyboard中有兩個場景 - 每個都有自己的視圖控制器「ViewControllerMainList」和「ViewControllerMainGrid」 - 文件中的第二個地方「ViewControllermain.swift – Tom

+1

你想做什麼? –

+0

我試圖去的路線ak2g - 我不能讓它工作currenlty,但假設它會在某個時刻 - 該解決方案將適合我優秀 – Tom

5

如果你想任何視圖控制器在第一次表明這時只要按一下您的視圖控制器storyboardand點擊是初始視圖控制器

從代碼(在AppDelegate中)

斯威夫特

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 
} 

目標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; 
} 
+1

這看起來很有希望。謝謝! – Tom

+0

當我嘗試實例化ViewControllerWithIdenifier時,代碼/應用程序僅以「SIGABRT」退出。我的故事板被稱爲「主,故事板」,所以我插入作爲故事板字符串。 (在調試/步驟中檢查似乎這是成功的。)我想實例化的視圖控制器類被稱爲「ViewControllerMainList」(它放置在文件「ViewControllermain.swift中,此外還包含類」ViewControllerMainGrid「) – Tom