swift 3.0 中使用 xib

文章寫于2016年9月底,Xcode 8,swift 3.0
真是蛋疼,折騰了很長時間,試了網上很多教程,結果又莫名的可以了!

1.方法和OC中一樣

將一個xib文件和一個ViewController類進行關聯的幾步操作:

  1. command + n 創建一個新的文件,選擇 User Interface - View 或者 Empty。

  2. 如果選擇的是 Empty 就需要在xib文件中,自己創建一個View。

  3. 將xib文件和ViewController類進行綁定,點擊左上角的 File's Owner,在右邊的選項的中的第三個選項卡的第一個欄目中寫入需要綁定的類名。

  4. 將xib中的view和self.view進行關聯,按住control 從File's Owner連線到view。

或者
?在創建ViewController文件時,可以選擇直接創建一個關聯完畢的xib文件。默認已經幫你完成上面幾步。
圖片描述
注:?當一個視圖控制器類,有相關聯的xib文件時(文件名相同),在執行內部loadView方法時,會自動的去讀取xib,所以這樣就能實現了。

說明:以上方法和OC中完全一樣,在swift項目中也一樣可以實現。但是我第一次弄的時候莫名的出現問題,現在測試可以使用。網上的內容說還需要以下部分才能實現,個人測試以下的內容也需要在xib文件綁定和關聯之后才可用。(個人覺得沒必要,特定環境下需要以下內容)

2.在該類中復寫 init

override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}convenience init() {var nibNameOrNil = String?("ViewController")//這里根據自己xib名//考慮到xib文件可能不存在或被刪,故加入判斷if Bundle.main.path(forResource: nibNameOrNil, ofType: "xib") == nil {nibNameOrNil = nil}self.init(nibName: nibNameOrNil, bundle: Bundle.main)
}required init(coder aDecoder: NSCoder) {fatalError("init(coder:) has not been implemented")
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542526.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542526.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542526.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數字圖像處理圖像反轉的實現_使用8086微處理器反轉16位數字

數字圖像處理圖像反轉的實現Problem statement: 問題陳述: Write an assembly language program in 8086 microprocessor to reverse 16 bit number using 8 bits operation. 在8086微處理器中編寫匯編語言程序,以使用8位操作反轉16位數字。 Example: …

php猴子找大王算法,教程方法;php實現猴子選大王問題算法實例電腦技巧-琪琪詞資源網...

琪琪詞資源網-教程方法;php實現猴子選大王問題算法實例電腦技巧,以下是給大家帶來的教程方法;php實現猴子選大王問題算法實例,大家可以了解一下哦!下面為你介紹php實現猴子選大王問題算法實例。本文實例講述了php實現猴子選大王問題算法。分享給大家供大…

numpy 歸一化_NumPy 數據歸一化、可視化

僅使用 NumPy,下載數據,歸一化,使用 seaborn 展示數據分布。下載數據import numpy as npurl https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.datawid np.genfromtxt(url, delimiter,, dtypefloat, usecols[1])僅提取…

java虛擬機規范閱讀(三)異常

Java虛擬機里面的異常使用Throwable或其子類的實例來表示,拋異常的本質實際上是程序控制權的一種即時的、非局部(Nonlocal)的轉換——從異常拋出的地方轉換至處理異常的地方。絕大多數的異常的產生都是由于當前線程執行的某個操作所導致的&am…

puppeteer api_使用Node.js和puppeteer API從URL創建PDF文件

puppeteer apiWe will continue using Node.js and puppeteer which is a node library. As we saw in our last article, Puppeteer is a Node library developed by Google and provides a high-level API for developers. 我們將繼續使用Node.js和puppeteer(這是一個節點庫)…

python線程同步鎖_[python] 線程間同步之Lock RLock

為什么需要同步 同樣舉之前的例子,兩個線程分別對同一個全局變量進行加減,得不到預期結果,代碼如下: total 0 def add(): global total for i in range(1000000): total 1 def desc(): global total for i in range(1000000): t…

servlet的由來

2019獨角獸企業重金招聘Python工程師標準>>> 動靜態網頁技術 首先說下訪問網頁的大概過程: 你在瀏覽器中輸入網址,按下enter鍵,此時瀏覽器代你做了很多事,簡要說為:將你輸入的這個網址作為目的地參數&#…

php header 文件大小,php獲取遠程文件大小及信息的函數(head_php

php獲取遠程文件大小及信息的函數(header頭信息獲取)阿里西西Alixixi.com開發團隊在做一個客戶系統時,需要做遠程下載的功能,并實時顯示進度條效果。所以,需要預先讀取遠程文件的大小信息,然后做為實時下載進度條的參數。功能函數…

Java ObjectInputStream readUnsignedShort()方法(帶示例)

ObjectInputStream類readUnsignedShort()方法 (ObjectInputStream Class readUnsignedShort() method) readUnsignedShort() method is available in java.io package. readUnsignedShort()方法在java.io包中可用。 readUnsignedShort() method is used to read 2 bytes (i.e. …

python中info的用法_Python pandas.DataFrame.info函數方法的使用

DataFrame.info(self, verboseNone, bufNone, max_colsNone, memory_usageNone, null_countsNone) [source] 打印DataFrame的簡要摘要。 此方法顯示有關DataFrame的信息,包括索引dtype和列dtype,非空值和內存使用情況。 參數:verbose &#x…

第四次作業 孫保平034 李路平029

用C編寫一個學生成績管理系統 1、可以實現以下功能&#xff1a; cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增加學生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl; 2、用鏈表存儲信息 * 程序頭部的注釋結束 3、約定的規范&#xff1a; 1界面設計簡介&#xff0c;人性化…

php serialize error at offset,PHP Notice: unserialize(): Error at offset XX of XX bytes

之前同事在本地開發的時候&#xff0c;出現一個錯誤&#xff0c;如下圖所示&#xff1a;字面意思就是反序列化錯誤&#xff0c;由此bug引申出來序列化和反序列化得應用&#xff0c;以及php array當key為string類型的數字值時&#xff0c;會發生什么情形。先來看序列化$str [1 …

Java ClassLoader setClassAssertionStatus()方法與示例

ClassLoader類setClassAssertionStatus()方法 (ClassLoader Class setClassAssertionStatus() method) setClassAssertionStatus() method is available in java.lang package. setClassAssertionStatus()方法在java.lang包中可用。 setClassAssertionStatus() method is used …

python怎么變各種顏色_python – 如何淡化顏色

有很多方法可以做到這一點.您如何選擇這取決于您是否重視速度和簡單性或感知均勻性.如果你需要它是真正統一的,你需要用顏色配置文件定義RGB顏色,你需要配置文件的原色,這樣你就可以轉換為XYZ,然后轉換到LAB,你可以操作L通道. 大多數情況下,您不需要這樣做,而是可以使用像Photo…

informatica中元數據管理

摘自&#xff1a; http://blog.itpub.net/28690368/viewspace-766528/ informaica是一個很強大的ETL工具&#xff0c;WORKFLOW MANAGER負責對ETL調度流程進行設計與管理和執行&#xff0c;informatica在資料庫中提供以下表來存儲調動流程的相關信息&#xff0c;以便WORKFLOW …

yii+php+當前目錄,Yii應用的目錄結構和入口腳本

以下是一個通過高級模版安裝后典型的Yii應用的目錄結構&#xff1a;~~~.├── backend├── common├── console├── environments├── frontend├── nbproject├── tests├── vendor├── composer.json├── composer.lock├── init├── init.bat├── …

8086 尋址方式_8086微處理器的不同尋址模式

8086 尋址方式Introduction: 介紹&#xff1a; Addressing mode tells us what is the type of the operand and the way they are accessed from the memory for execution of an instruction and how to fetch particular instruction from the memory. There are mainly 8 …

決策樹的value是什么意思_從零開始的機器學習實用指南(六):決策樹

類似SVM&#xff0c;決策樹也是非常多功能的機器學習算法&#xff0c;可以分類&#xff0c;回歸&#xff0c;甚至可以完成多輸出的任務&#xff0c;能夠擬合復雜的數據集&#xff08;比如第二章的房價預測例子&#xff0c;雖然是過擬合了。&#xff09;決策樹也是很多集成學習的…

Hive中生成隨機唯一標識ID的方法

2019獨角獸企業重金招聘Python工程師標準>>> HIVE中處理的數據往往比較多&#xff0c;在處理數據的時候希望給處理得到的數據一個ID標識&#xff0c;這時候可以用到UUID。 UUID的算法的核心思想是結合機器的網卡、當地時間、一個隨即數來生成UUID。從理論上講&#…

php從網頁獲得數據,php根據URL獲得網頁內容

php 中根據url來獲得網頁內容非常的方便&#xff0c;可以通過系統內置函數file_get_contents(),傳入url,即可返回網頁的內容&#xff0c;比如獲得百度首頁的內容代碼為&#xff1a;$html file_get_contents(http://www.baidu.com/);echo $html;就可以顯示出百度首頁的內容&…