2017-06-28 41 views
1

我想我可能會問一個愚蠢的問題,但它確實讓我困惑了一會兒。iOS編程:類和實例

我是iOS開發人員和我在網上看到的例子,他們總是在viewController的類中寫代碼。

但是,根據我在C++中的經驗,我認爲一個類只是一個重用的模板。您只能在初始化時使用它。 所以執行工作的事情就是實例。

我的問題是/誰在應用程序中創建viewController實例?

+1

你是在做一切代碼或你使用故事板? – rmaddy

+0

@rmaddy可能是故事板。如果OP在代碼中做所有事情,那麼他們會看到VC如何實例化,因爲他們自己會這樣做 – Alexander

+0

這是一個非常好的問題。當我第一次啓動 – Alexander

回答

3

我想你是指模板ViewController,例如,總是附帶一個新的單頁應用程序項目。

它正在創建一旦程序完成發射,但它基本上做的是下面的「引擎蓋下」:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 
    // Override point for customization after application launch. 

    window = UIWindow(frame: UIScreen.main.bounds) 

    window?.makeKeyAndVisible() 

    window?.rootViewController = ViewController(); 
    return true 
} 

事實上,這就是你需要做什麼,如果你想刪除故事板和工作完全編程,除了在你項目的一般信息清除主界面信息如下:

Leave the Main Interface info blank

如果你w ^螞蟻顯示另一個自定義ViewController類,你可以從另一個ViewController目前它在

let secondViewController = MyCustomViewController() 
// this line will place the MyCustomViewController instance on top of the current ViewController 
present(secondViewController, animated: true, completion: nil) 

我希望我能幫助!

+0

「主界面」是否只指定了xib/nib/storyboard?然後從那裏完成VC的實例化。我現在無法檢查我自己 – Alexander

+0

是的,就是這樣。我指出了這一點,以防萬一他想嘗試在沒有故事板的情況下運行ViewController。如果它不是空白的,它將不起作用(至少在Xcode 8.3之前) –