![](/img/trans.png)
[英]Custom init for UIViewController in Swift with interface setup in storyboard
[英]SWIFT uiviewcontroller init
我開始使用Swift 。
使用Objective-C,當我可以避免使用故事板時,初始化視圖控制器很容易。 我只會創建一個UIViewController
子類,並將所有初始化代碼放在initWithNibName
。
現在有了故事板,我迷路了。 我創建了一個UIviewController
子類,我嘗試添加init
(筆尖名稱)和init
(編碼器),但它崩潰了。
這是我的代碼:
//
// SecondViewController.swift
// tabTestWithSwift
//
// Created by Marianna Ruggieri on 02/11/14.
// Copyright (c) 2014 Marianna Ruggieri. All rights reserved.
//
import UIKit
class FirstViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
println("init with nib")
super.init()
tabBarItem.title = "test"
}
required init(coder aDecoder: NSCoder) {
//fatalError("init(coder:) has not been implemented")
print("init coder")
super.init()
}
}
看到這個截圖: http : //oi62.tinypic.com/10ogwsh.jpg
編輯:我沒有做任何特別的事情。 啟動一個TabBar
項目並編輯視圖控制器,如您在上面的代碼中看到的那樣。 就是這樣!!!!
如果我使用情節UIViewController
哪個是初始化UIViewController
的正確方法? 我應該把我的視圖控制器的所有設置放在哪里? 對於某些設置,加載為時已晚。
您正在通過調用super.init()
創建一個循環,您應該在其中調用init(nibName:nibBundleOrNil)
。 init()
的 super 實現調用您的方法,該方法又再次調用 super init。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.