偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iPhone應(yīng)用程序 Say Hello實例操作 (中篇)

移動開發(fā) iOS
本文介紹的是iPhone應(yīng)用程序 Say Hello實例操作,以圖文的形式為友們介紹,剛方便與操作學(xué)習(xí),我們先來看內(nèi)容。

iPhone應(yīng)用程序 Say Hello實例操作 (中篇)是本節(jié)姐的內(nèi)容,繼續(xù) iPhone應(yīng)用程序 Say Hello實例操作 (上篇)開始介紹,先來看內(nèi)容。項目開始了。

添加視圖控制器(UIViewController)

添加視圖控制器文件在iPhone應(yīng)用程序中,視圖控制器(UIViewController)起著核心作用。顧名思義,視圖控制器負(fù)責(zé)管理控制視圖。在iPhone上,它們也幫助進(jìn)行導(dǎo)航和內(nèi)存管理。

選中Xcode項目管理器里的項目(即SayHello項目,位于Groups and Files列表的頂部)或者選中SayHello文件夾——新文件在添加時會被加入到當(dāng)前選擇的位置。 選中后,在Xcode菜單中選擇 File > New > New File,也可以在選中的文件夾上面點右鍵,選擇 New File。

iPhone應(yīng)用程序 Say Hello實例操作

在New File窗口中,請選擇Cocoa Touch,然后選擇UIViewController subclass。

iPhone應(yīng)用程序 Say Hello實例操作

點擊 Next 按鈕,在Options窗口,請勾選 “With XIB for user interface”復(fù)選框。選中 “With XIB for user interface”后,Xcode在創(chuàng)建視圖控制器的同時,會為其創(chuàng)建一份nib文件,并將該文件添加到項目中。

iPhone應(yīng)用程序 Say Hello實例操作

點擊Next按鈕,在其后出現(xiàn)的保存文件窗口中,為文件起個名字,例如RootTimelineViewController,并選擇文件存儲的位置,如下所示:

iPhone應(yīng)用程序 Say Hello實例操作

點擊 Save,文件會被添加到項目中。接下來,我們將創(chuàng)建控制器類的實例。

創(chuàng)建視圖控制器實例現(xiàn)在,我們有了視圖控制器的類和nib文件,但要在應(yīng)用程序代理中使用它,還必須創(chuàng)建類的實例,并且將實例存儲在變量中,以便操作它。

在應(yīng)用程序委托類的頭文件(即SayHelloAppDelegate.h)中執(zhí)行下述操作:

在一個類中訪問另一個類,首先需要引用被訪問類的頭文件。所以我們先在應(yīng)用程序委托頭文件(SayHelloAppDelegate.h)的接口聲明前面-即SayHelloAppDelegate聲明前面引用視圖控制器(RootViewController)的頭文件:

  1. #import "RootViewController.h"  

然后在頭文件大括號之間添加下面的代碼,這是為了向應(yīng)用程序委托添加一個實例變量:

  1. RootViewController *viewController; 

在大括號之后 @end之前添加下面的屬性聲明:

  1. @property (nonatomic, retain) RootViewController *viewController; 

在頭文件中添加完相應(yīng)變量和屬性申明后,需要在對應(yīng)的實現(xiàn)文件中,合成屬性的存取方法,在dealloc方法中釋放視圖控制器的實例。

在應(yīng)用程序委托類的實現(xiàn)文件(即SayHelloAppDelegate.m)中執(zhí)行下述操作:

在類的 @implementation代碼塊中通知編譯器為視圖控制器合成存取方法:

  1. @synthesize viewController; 

在dealloc方法起始處釋放視圖控制器:

  1. [viewController release]; 

我們已經(jīng)把視圖控制器屬性添加到應(yīng)用程序的委托,現(xiàn)在需要實際創(chuàng)建一個視圖控制器實例,并將其設(shè)置為屬性的值。

在應(yīng)用程序委托類實現(xiàn)文件(即SayHelloWorldAppDelegate.m文件)中的applicationDidFinishLaunching: 方法開頭添加如下代碼,這些代碼用于創(chuàng)建一個RootViewController實例:

  1. RootViewController *controller = [[RootViewController alloc]initWithNibName:@"RootViewController" bundle:nil];  
  2. self.viewController = controller;  
  3. [controller release]; 

這段代碼的作用如下:

創(chuàng)建RootViewController這個視圖控制器的實例。使用alloc方法創(chuàng)建一個視圖控制器,然后用initWithNibName:bundle:方法對其進(jìn)行初始化。init方法先指定控制器應(yīng)加載的nib文件,然后指定在哪個程序包中可找到該文件。程序包是文件系統(tǒng)某個位置的抽象,該位置存放了應(yīng)用程序?qū)玫降拇a和資源。

使用屬性的存取方法,將創(chuàng)建好的視圖控制器實例設(shè)置為viewController屬性變量的值

根據(jù)內(nèi)存管理規(guī)則釋放視圖控制器

視圖控制器用來配置和管理在應(yīng)用程序中看到的視圖,每一個視圖也對應(yīng)有一個視圖控制器來管理。窗體(window)有一個根視圖控制器——這個視圖控制器負(fù)責(zé)配置當(dāng)窗體顯示時最先顯示的視圖。要讓你的視圖控制器的內(nèi)容顯示在窗體中,需要去設(shè)置窗體的根視圖控制器為你的視圖控制器。

所以我們的項目中,在上面創(chuàng)建視圖控制器實例代碼后面再添加一行代碼,來設(shè)置窗體的根視圖控制器為我們新添加的視圖控制器:

  1. self.window.rootViewController = controller

最后一行來自于Xcode提供的模板自動生成的代碼:

  1. [self.window makeKeyAndVisible]; 

這行代碼會讓包含了視圖控制器視圖的Window窗口顯示在屏幕上。

本章完整代碼,SayHelloAppDelegate.h文件:

  1. #import <UIKit/UIKit.h> 
  2. #import "RootViewController.h"  
  3. @interface SayHelloAppDelegate : NSObject <UIApplicationDelegate> {  
  4. RootViewController *viewController;  
  5. }  
  6. @property (nonatomic, retain) IBOutlet UIWindow *window;  
  7. @property (nonatomic, retain) RootViewController *viewController;  
  8. @end  
  9. SayHelloAppDelegate.m文件:  
  10. #import "SayHelloAppDelegate.h"  
  11. @implementation SayHelloAppDelegate  
  12. @synthesize window=_window;  
  13. @synthesize viewController;  
  14. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  15. {  
  16. RootViewController *controller = [[RootViewController alloc]initWithNibName:@"RootViewController" bundle:nil];  
  17. self.viewController = controller;  
  18. [controller release];  
  19. self.window.rootViewController = controller;  
  20. [self.window makeKeyAndVisible];  
  21. return YES;  
  22. }  
  23. - (void)dealloc  
  24. {  
  25. [_window release];  
  26. [viewController release];  
  27. [super dealloc];  
  28. }  
  29. @end 

測試運行在Xcode的菜單中選擇 Product > Run 或者點擊左上角工具欄上的 Run 按鈕,iPhone模擬器應(yīng)該會自動啟動。當(dāng)應(yīng)用程序啟動后,還是看到一個白色屏幕,不過第一次看到的白色屏幕,是應(yīng)用程序代理中的Window,而這次看到的白色屏幕,是視圖控制器RootViewController中的視圖。

下一步,我們將開始對界面進(jìn)行編輯。

編輯Nib文件

在iPhone開發(fā)中,一般都會用NIB文件來來負(fù)責(zé)界面顯示,也就是MVC模型里面的視圖對象,而NIB文件只包含用戶界面元素,不包含任何源碼,那么怎么讓視圖對象和視圖控制器關(guān)聯(lián)起來呢?這就需要用到兩個非常重要的概念:插座變量(outlet)和文件擁有者代理對象(File's Owner)。

視圖控制器的視圖和Nib文件視圖控制器主要的職責(zé)就是配置和管理應(yīng)用程序中所有的視圖,一般來說,視圖控制器的視圖是放在一個Nib文件中,當(dāng)然也可以不需要Nib文件,通過程序創(chuàng)建視圖,典型的如UITableViewController這樣的視圖控制器,就可以不需要Nib文件。在創(chuàng)建視圖控制器實例時,其中一個主要的構(gòu)造函數(shù) initWithNibName:bundle: 的第一個參數(shù)就是視圖控制器對應(yīng)的Nib文件的名字。視圖控制器在其 loadView 方法中加載它的Nib文件。如果是使用 initWithNibName:bundle: 構(gòu)造函數(shù)生成的實例,并且你想在視圖加載完成后進(jìn)行額外的設(shè)置,只要重寫視圖控制器的 viewDidLoad 方法就好了。

在Xcode中點擊打開視圖控制器的Nib文件(即RootViewController.xib文件),在Xcode中即可直接查看和編輯。文件包含三個對象,文件擁有者代理(File's Owner),第一響應(yīng)者代理(First Responder)以及一個視圖(View)。視圖(View)是視圖控制器的主視圖,在主視圖中還可以添加若干子視圖。文件擁有者代理(File's Owner)代表Nib文件對應(yīng)的視圖控制器類。理解文件所有者代理的角色,以及如何建立文件所有者和Nib文件中界面元素之間的連接,是非常重要的。

iPhone應(yīng)用程序 Say Hello實例操作

小貼士: 在Xcode中編輯Nib文件時,可以通過點擊右上角工具欄按鈕iPhone應(yīng)用程序 Say Hello實例操作顯示隱藏相應(yīng)面板,方便對界面編輯和屬性設(shè)置。

文件擁有者(File's Owner)在一個Nib文件中,文件擁有者對象是其中最重要的對象之一,因為正是通過它,來建立起應(yīng)用程序代碼和Nib界面文件中對象之間的連接,具體來說,它就是對應(yīng)Nib文件的視圖控制器對象。以本項目為例,RootViewController.xib這個Nib文件的文件擁有者對象就是RootViewController類的實例。

一般來說,在使用模板同時創(chuàng)建UIViewController文件和對應(yīng)的Nib文件時,它默認(rèn)會設(shè)置Nib文件對應(yīng)的文件擁有者為創(chuàng)建的UIViewController類。如果要修改或者設(shè)置Nib文件對應(yīng)的文件擁有者,可以使用 Identity Inspector 面板進(jìn)行設(shè)置。

iPhone應(yīng)用程序 Say Hello實例操作

如上圖所示, 本項目的RootViewController.xib文件對應(yīng)的文件所有者,在Identity Inspector 面板中,Custom Class部分的Class項,可以看到對應(yīng)的值是RootViewController,這表示文件擁有者就是RootViewController類的實例,就可以在Xcode中訪問文件擁有者類里面標(biāo)志為IBOutlet的屬性和IBAction的方法,和Nib文件中的界面元素建立關(guān)聯(lián)。

視圖插座變量

在Xcode中,使用 Inspector 面板,或者在連接面板,可以查看、創(chuàng)建、刪除對象之間的連接。要查看視圖控制器的連接,可以通過以下步驟:

在Xcode的界面中,從左側(cè)的文件組選中要查看的視圖控制器的Xib文件
在視圖編輯界面,點擊選中 File's Owner
在 Inspector 面板,選中 Connection inspector,這里會顯示文件所有者所有的插座連接

iPhone應(yīng)用程序 Say Hello實例操作

在視圖編輯界面,按住Control鍵點擊 File's Owner 或者在 File's Owner上點擊右鍵,彈出一個黑色半透明的面板顯示文件所有者的所有連接

在上面第三步,右側(cè)面板顯示的連接面板和右鍵點擊File's Owner彈出的半透明連接面板,顯示的信息和作用都是一樣的,可以根據(jù)個人習(xí)慣靈活使用。到目前為止唯一的連接是視圖控制器的 view 插座變量。一個插座變量就對應(yīng)視圖控制器類的一個屬性(有時候也可以是一個實例變量),只不過這個屬性和nib文件中的某個界面元素連接在一起。此處的view的連接,表明當(dāng)nib文件 RootViewController.xib 被加載,并且UIView的實例解檔之后,視圖控制器的view實例變量會被設(shè)置為指向nib文件中的視圖。

iPhone應(yīng)用程序 Say Hello實例操作

中間測試

在項目開發(fā)中,尤其在對開發(fā)工具和語言不熟悉的時候,需要經(jīng)常性的對新增的功能進(jìn)行測試,以確保當(dāng)前功能運行是正常的。比如我們新增了RootViewController這個自定義視圖控制器,需要去測試一下它是不是已經(jīng)成功添加。要測試視圖控制器工作正常,簡單的辦法修改視圖控制器的視圖的背景色,例如修改為粉紅色背景,然后重新運行,看看是不是界面變成了紅色背景。

要設(shè)置視圖控制器的視圖的背景色,步驟如下:

在Xcode的界面中,從左側(cè)的文件組選中視圖控制器的Xib文件(RootViewController.xib)

在右側(cè)的功能區(qū)域,選擇屬性面板(Attributes inspector)

在編輯區(qū)域,選擇視圖

在視圖的屬性面板,點擊背景色(Background)對應(yīng)的顏色下拉框,會彈出顏色選擇面板

在顏色選擇面板,選擇一個合適的顏色,例如粉紅色

保存nib文件

點擊左上角工具欄的Run按鈕,編譯運行項目

iPhone應(yīng)用程序 Say Hello實例操作

正常情況下,編譯應(yīng)該不會出現(xiàn)任何錯誤,運行后會彈出模擬器,結(jié)果如下圖所示:

iPhone應(yīng)用程序 Say Hello實例操作

確認(rèn)沒有問題后,再將應(yīng)用的背景色還原。還原的話,將視圖的背景色設(shè)置為白色就好了。

配置視圖

Xcode提供了一套對象庫,可以直接添加到Nib文件中。其中一部分示界面元素,例如按鈕和文本輸入框;其他一部分是控制器對象,例如視圖控制器。我們當(dāng)前項目的nib文件已經(jīng)包含了視圖,現(xiàn)在只要添加按鈕和文本輸入框就好了。從對象庫中將用戶界面元素拖動到視圖中,基本步驟如下:

iPhone應(yīng)用程序 Say Hello實例操作

在Xcode的界面中,從左側(cè)的文件組選中視圖控制器的Xib文件(RootViewController.xib)

在右側(cè)的功能區(qū)域,顯示對象庫(object library)

添加一個按鈕(UIButton),一個文本輸入框(UITextField),兩個文本標(biāo)簽(UILabel)到視圖中??梢詮膶ο髱炖锩嫱蟿硬⑺鼈兎诺揭晥D
 
參考前面的原型設(shè)計,對界面元素的尺寸和布局進(jìn)行調(diào)整

將右側(cè)功能區(qū)域切換到屬性面板(Attributes inspector)

選中文本輸入框(Text Field),設(shè)置Placehold屬性為“請輸入姓名”

選中左上側(cè)的文本標(biāo)簽(UILabel),設(shè)置Text屬性為“姓名”

選中下面的文本標(biāo)簽(UILabel),設(shè)置Text屬性為空,Alignment屬性設(shè)置為居中對齊

選中按鈕(UIButton),設(shè)置Title屬性為“招呼”

iPhone應(yīng)用程序 Say Hello實例操作

設(shè)置好的界面如下所示:

如果我們想讓用戶在輸入時有一些更好的體驗,比如用戶輸入英文名時,默認(rèn)會首字母大寫;比如鍵盤會顯示完成(Done)按鍵,點擊后完成輸入隱藏鍵盤。要支持這樣的輸入細(xì)節(jié),通過設(shè)置文本框?qū)傩跃涂梢酝瓿桑?/p>

在Capitalization下拉列表,選擇Words,以支持首字母大寫

在Return Key下拉列表,選擇Done,以支持鍵盤上顯示完成(Done)按鍵

iPhone應(yīng)用程序 Say Hello實例操作

保存文件后,編譯運行程序,可以看到運行的界面效果和我們在Xcode中擺放的效果是一樣的。點擊按鈕,按鈕會高亮,在文本輸入框中點擊,會彈出輸入鍵盤,鍵盤里可以看到完成(Done)按鈕。但是還不能根據(jù)輸入的內(nèi)容去顯示文字,還不能隱藏鍵盤,因為目前我們還僅僅完成了視圖部分的工作,還需要讓視圖中的對象和視圖控制器的對象之間建立連接,并添加相應(yīng)的邏輯,才能實現(xiàn)。

iPhone應(yīng)用程序 Say Hello實例操作

小結(jié):關(guān)于iPhone應(yīng)用程序 Say Hello實例操作 (中篇)的內(nèi)容介紹完了,希望本文對你有所幫助。請繼續(xù)閱讀 iPhone應(yīng)用程序 Say Hello實例操作 (下篇)

責(zé)任編輯:zhaolei 來源: 博客園
相關(guān)推薦

2011-07-19 10:42:41

iPhone 應(yīng)用程序 模型

2011-07-19 11:12:07

iPhone 控制器

2011-07-26 11:13:15

iPhone PXL

2011-07-26 16:43:59

iPhone Web 服務(wù)器

2011-07-21 10:47:37

iPhone Cocoa 委托

2011-07-26 13:23:14

iPhone 圖片 相冊

2011-07-26 10:09:08

iPhone 多語言 國際化

2011-07-26 09:41:23

iPhone xcode Mac OS X

2011-07-20 15:58:58

iPhone 應(yīng)用程序 生命周期

2010-08-27 10:41:41

iPhone核心應(yīng)用程序

2011-07-27 17:30:40

iPhone Locate 定位

2011-08-12 14:54:45

iPhone委托

2011-07-19 14:36:32

iPhone

2011-07-21 15:56:32

iPhone 截屏

2011-08-05 13:49:53

iPhone 應(yīng)用 開發(fā)

2011-07-26 16:33:56

iPhone Delegate

2012-05-24 15:49:35

HTML5

2011-08-10 09:31:33

開發(fā)iPhone應(yīng)用程

2011-07-28 13:59:40

iPhone App

2011-07-06 16:25:10

iPhone 程序 調(diào)用
點贊
收藏

51CTO技術(shù)棧公眾號