歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> iOS視圖控制器與標簽傳遞nib的輸出口outlet

iOS視圖控制器與標簽傳遞nib的輸出口outlet

日期:2017/3/1 10:23:33   编辑:Linux編程

視圖控制器與標簽傳遞nib的輸出口outlet

在Xcode 4.3.2中,我們使用interface Builder創建一個視圖界面,我們選擇的是IOS中的Application的single ViewApplication視圖,此模版會幫我們自動構建好需要的文件。包含兩個類:AppDelegate和ViewController和xib文件即圖形界面設計。

ViewController文件是繼承的UIViewController基類,UIViewController是ViewController的父類,是一個通用控制器,也是UIKit的一部分。

當我們在xib文件中添加標簽控件的時候,可以通過interface Builder創建三個元素,也可以通過修改代碼帶達到我們想要的效果,這裡就有圖形和代碼元素的交互。

因此,控制器類可以使用一種特殊的實例變量來引用xib中的對象,這個變量就是輸出口outlet。可以把輸出口看成是指向xib中對象的指針。

例如,你在IB(interface Builder縮寫)中創建一個文本標簽,希望在代碼中修改該標簽文本。可以通過聲明一個輸出口,並將其指向此標簽對象。怎麼添加聲明呢,我們需要在ViewController.h中進行聲明:IBoutlet UILabel *myLabel;上述代碼,我們引用了outlet輸出口,通過輸出口來實現聲明並通過代碼修改代碼的效果。

也可以設置xib文件中的界面對象觸發控制器類中的特殊方法,這些特殊方法稱為操作方法。可以告訴IB,當用戶放手按鍵時,應當調用代碼中的特定操作方法。

輸出口是使用關鍵字IBOutlet聲明的實例變量。控制器頭文件的輸出口聲明應如下所示:

IBOutlet UIButton *myButton;

而IBOutlet關鍵字的定義為:

#ifndef IBOutlet

#define IBOutlet

#endif

通過上述定義,我們可以看到輸出口沒有進行任何操作,唯一作用就是告訴IB此實例變量將被連接到xib中的對象。你創建的任何需要鏈接到xib文件中的對象的實例變量都必須以IBOutlet關鍵字開頭。打開IB時,它會在項目頭文件中掃描此關鍵字,並允許你根據這些變量將代碼連接到xib中,那是怎麼通過IB在輸出口和用戶界面xib之間建立連接的呢?

我們先再提一個概念:操作。操作是控制器類中的方法。他們通過特殊關鍵字:IBAction聲明。該關鍵字告訴IB此方法是一個操作,且可以被某個控件出發。

聲明如下:-(IBAction)doSomething:(id)sender;

該方法的實際名稱是沒有限制的,同OC一致。但返回值類型必須是IBAction,與聲明void返回值相同。這是聲明操作方法不返回任何值的另一種方法。(注明:void與IBAction同樣效果實現無返回值),並接受了一個參數,該參數通常被聲明為id類型,名稱為sender。出發操作的空間將使用sender參數引用其自身。如果你的操作方法將在按下按鈕時被調用,則sender參數將包含對該特定按鈕的引用。

Copyright © Linux教程網 All Rights Reserved