[英]How to set NavigationController navigationItem title from ViewController loaded by Xib
[英]How are .xib files being automatically associated and loaded with my ViewController?
我正在使用Xcode 8和Swift,而不是使用Storyboards。
我點擊Add-> Cocoa Touch Class,然后選中復選框以生成XIB。
我現在有FooViewController.swift和FooViewController.xib。 xib具有在“文件所有者”下設置的類。 據我所知,這是XIB與類之間的唯一關聯。 生成的類不包含任何加載XIB的內容。
我可以像這樣(從其他一些ViewController)創建和顯示此視圖控制器:
let foo = FooViewController();
self.navigationController!.pushViewController(foo, animated: true);
這可以正常工作,並且可以通過UI完整加載。 我不明白是為什么。 在線上的大多數指南和教程都建議ViewController需要手動加載XIB。
從Xcode 4.5的一天開始,當我們曾經創建通用應用程序時
AppDelegate類中的didFinishLaunchingWithOptions
中曾經有代碼可以為目標設備加載不同的XIB,因此它的作用與您上面的要求相同。 但是考慮到Xcode和Cocoa Framework的發展。 與編譯器自動為我們做很多事情相比,已經有了很長的路要走。
在這種特定情況下:
UINib
從捆綁並加載 super.viewDidLoad()
時,如果代碼沒有找到任何內容,它將轉到代碼中查找是否正在創建任何程序化視圖,它將為同一視圖控制器生成空白視圖。 如果我們仔細查看XIB文件,則XIB中有一個附加了主視圖的視圖插座,但是我們沒有創建這樣的插座,因此其將VC Source文件的自動生成的插座與XIB中的視圖相連。 如果有道理。
另外,請在下面找到一些代碼,以供tableView Context參考:
let newAccountTableCellNib:UINib = UINib(nibName: "AccountTableCell", bundle: nil)
tableView.registerNib(self.newAccountTableCellNib, forCellReuseIdentifier: "AccountTableCell")
這應該可以解決您的查詢。 干杯!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.