Je commence à utiliser rapide.
avec objectif c Quand j'ai pu éviter d'utiliser le storyboard, l'initialisation d'un contrôleur de vue était facile. Je voudrais juste créer un UIViewController
sous-classe, et je mettrais tout le code d'initialisation à l'intérieur
initWithNibName
.
Maintenant, avec le storyboard, je suis perdu. J'ai créé un UIviewController
sous-classe, j'ai essayé d'ajouter init
(nom de la plume) et init
(codeur) mais ça plante.
C'est mon code
//
// 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()
}
}
ça plante. voici la photo de l'accident: http://oi62.tinypic.com/10ogwsh.jpg
EDIT: Je n’ai rien fait de spécial. A commencé une TabBar
projet. et édité le contrôleur de vue comme vous le voyez dans le code ci-dessus. c'est tout!!!!
qui est la bonne façon d'initialiser un UIViewController
Si j'utilise le storyboard, où dois-je placer tous les paramètres de mon contrôleur de vue, le chargement est trop tardif pour certains paramètres.
Réponses:
6 pour la réponse № 1Vous créez une boucle en appelant super.init()
où vous devriez appeler init(nibName:nibBundleOrNil)
. La super implémentation de init()
appelle votre méthode, qui à son tour appelle à nouveau super init.