В моем приложении у меня есть пользовательский UIViewController с соответствующим XIB-файлом. Я создал пару кнопок и меток в XIB-файле и создал выходы в пользовательский UIViewcontroller. Я затем нажмите этот вид контроллер на навигационном стек с помощью обычных средств:Содержание XIB не загружается
let challengeDetails = ChallengeDetails()
self.navigationController!.pushViewController(challengeDetails, animated: true)
Я знаю, что контроллер представления выталкивается в стек, потому что я установить фоновый цвет его точку зрения на красный и то, что я получаю пустой красный вид. Я не понимаю, почему я не вижу ярлыков и кнопок, которые я создал в XIB-файле.
Я проверил обычное количество вещей: Владелец файла установлен в мой пользовательский класс. представление xib связано с контроллером представления (в Outlets).
Когда я создал проект, я выбрал «Приложение с вкладками», и оно появилось вместе с доской. Однако, когда я создал файл XIB, я сделал это, просто установив флажок при создании нового подкласса контроллера. Нужно ли подключать XIB к доске объявлений, чтобы она работала?
Любая помощь будет оценена по достоинству. Если это помогает, вот пользовательский класс:
import UIKit
class ChallengeDetails: UIViewController {
// Outlets from xib file.
@IBOutlet weak var challengeDescriptionTextView: UITextView!
@IBOutlet weak var challengeTitleLabel: UILabel!
@IBAction func browseTitlesButton(sender: UIButton) {
browseTitlesInChallenge()
}
@IBAction func acceptChallengeButton(sender: UIButton) {
acceptThisChallenge()
}
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = UIColor.redColor()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func browseTitlesInChallenge() {
}
func acceptThisChallenge() {
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
Это то, что я искал точно. Для будущих поисковиков: ничего не стоит, что вы не должны включать «.xib» при указании имени ниба в приведенном выше присваивании. – zeeple
Спасибо. Хотя он однажды (в objc-эре) не был обязательным для инициализации ViewController явно с помощью nibName - iOS будет искать xib с тем же именем. – dOM