SWIFT uiviewcontroller init

Mar*_*nna 2 initialization uiviewcontroller ios swift

我开始使用swift.

目标C的时候才能避免使用故事板,初始化视图控制器很容易.我只是创建一个UIViewController子类,我会把所有的初始化代码放在里面 initWithNibName.

现在有了故事板,我迷失了.我创建了一个UIviewController子类,我尝试添加init(nib名称)和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()
    }

}
Run Code Online (Sandbox Code Playgroud)

它崩溃了.这是崩溃图片:http: //oi62.tinypic.com/10ogwsh.jpg

编辑:我没有做任何特别的事情.开始了一个TabBar项目.并按照上面的代码中的说明编辑了视图控制器.而已!!!!

UIViewController如果我正在使用故事板,这是初始化的正确方法?我应该在哪里设置视图控制器的所有设置?对于某些设置,确实加载太迟了.

Bob*_*ork 6

您正在通过调用super.init()应该调用的位置来创建循环init(nibName:nibBundleOrNil).超级实现init()调用你的方法,然后再调用super init.