自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone開發(fā)中關(guān)于Nib文件講解

移動(dòng)開發(fā) iOS
本文介紹的是iPhone開發(fā)中關(guān)于Nib文件講解,主要解決iphone應(yīng)用中的nib文件,來(lái)看詳細(xì)內(nèi)容。

iPhone開發(fā)中關(guān)于Nib文件講解是本文要介紹的內(nèi)容,不多說(shuō),來(lái)看詳細(xì)內(nèi)容。一個(gè)簡(jiǎn)單的iPhone項(xiàng)目及代碼,不用Interface Builder開發(fā)iPhone程序,一個(gè)細(xì)微的差別 loadNibNamed:owner:options:

用過delphi的童鞋應(yīng)該比較清楚frm文件,就是用鼠標(biāo)拖拖拉拉,就能設(shè)計(jì)好的那個(gè)窗體所生成的文件。

在使用xcode進(jìn)行開發(fā)時(shí),也用了同樣的形式,把復(fù)雜的頁(yè)面通過簡(jiǎn)單的拖拉以及屬性設(shè)置來(lái)設(shè)計(jì)出來(lái),然后序列化到Nib文件里,等程序運(yùn)行的時(shí)候,加載進(jìn)來(lái)就可以了。

xcode進(jìn)行窗體開發(fā)時(shí),有兩種形式把Nib文件反序列化。

一種是通過設(shè)置view controller的NIB File屬性。

另外一種便是通過initWithNibName方法。

第二種其實(shí)沒什么好說(shuō)的,就是讀取nib文件,加載,反序列化,生成實(shí)例,顯示。

對(duì)于***種,有些地方做的有些蹊蹺,百思不得其解。

假設(shè)要為主窗體Window添加一個(gè)View,xcode中現(xiàn)有View-based模板的做法是,先創(chuàng)建一個(gè)帶Nib文件(假設(shè)為MyViewController.xib)的UIViewController自定義子類(假設(shè)為MyViewController.m)。

然后把MainWindow.xib中的View Controller實(shí)例的class name設(shè)為這個(gè)自定義子類MyViewController,并指定NIB File為剛才創(chuàng)建的Nib文件(MyViewController.xib)。

但是經(jīng)過測(cè)試,其實(shí)只要設(shè)定了class,不指定NIB File也是可以的。

當(dāng)然如果在delegate里使用viewController的超類UIViewController來(lái)定義property的話(這樣做的目的是能把MainWindow.xib中的View Controller的插頭,插到delegate里的插座上),也可以只指定NIB File來(lái)實(shí)現(xiàn)加載。

但是如果把class name和NIB File設(shè)成各自不關(guān)聯(lián)的類和nib文件會(huì)怎樣呢?

答案是以NIB File為主。

比如說(shuō),我們?cè)O(shè)定delegate的property為UIViewController。

但是可以指定MainWindow.xib中View Controller的class為MyViewController1(其對(duì)應(yīng)Nib文件為MyViewController1.xib)

但是我們?cè)O(shè)定這個(gè)View Controller的NIB File為MyViewController2.xib(其File Owner為MyViewController2.m),那么實(shí)際加載進(jìn)來(lái)的是MyViewController2.xib里的View。

在設(shè)計(jì)MainWindow.xib中View Controller的時(shí)候,除了加載其他的Nib文件外,也可以直接設(shè)計(jì)其View,也就是說(shuō)不需要另外的nib文件,直接在MainWindow.xib進(jìn)行設(shè)計(jì)。當(dāng)兩者同時(shí)進(jìn)行的時(shí)候,以MainWindow.xib中設(shè)計(jì)的窗體為主,也就是說(shuō)即使load了其他Nib文件,也不會(huì)呈現(xiàn)出來(lái)。

對(duì)于有潔癖,或者有重度自我強(qiáng)迫癥的人來(lái)說(shuō),是不需要這種快餐式的設(shè)計(jì)的。

那就是拋棄一切Nib文件,所有的窗體設(shè)計(jì)都在代碼中完成。

改造Window-Based模板,

1.從project中刪除MainWindow.xib文件

2.從Info.plist中,刪除Main nib file base name項(xiàng)

3.編輯main.m

把這句Java代碼 

  1. int retVal = UIApplicationMain(argc, argv, nil, nil);    
  2. int retVal = UIApplicationMain(argc, argv, nil, nil); 

改為Java代碼 

  1. int retVal = UIApplicationMain(argc, argv, nil, @"___PROJECTNAMEASIDENTIFIER___AppDelegate");    
  2.  
  3. int retVal = UIApplicationMain(argc, argv, nil, @"___PROJECTNAMEASIDENTIFIER___AppDelegate"); 

4.編輯___PROJECTNAMEASIDENTIFIER___AppDelegate.m

把方法 Java代碼 

  1. - (void)applicationDidFinishLaunching:(UIApplication *)application {         
  2.     
  3.     // Override point for customization after application launch     
  4.     [window makeKeyAndVisible];     
  5. }    
  6.  
  7. - (void)applicationDidFinishLaunching:(UIApplication *)application {      
  8.  
  9.     // Override point for customization after application launch  
  10.     [window makeKeyAndVisible];  

改為Java代碼 

  1. - (void)applicationDidFinishLaunching:(UIApplication *)application {     
  2.     UIWindow *wd = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];     
  3.     self.window = wd;     
  4.     [wd release];     
  5.     [window makeKeyAndVisible];     
  6.     
  7. }    
  8.  
  9. - (void)applicationDidFinishLaunching:(UIApplication *)application {  
  10.     UIWindow *wd = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  11.     self.window = wd;  
  12.     [wd release];  
  13.     [window makeKeyAndVisible];  
  14.  

當(dāng)然,不改寫模板程序,使用window-based模板生成框架后,按照上述方法改寫程序也是可以的。 

小結(jié):iPhone開發(fā)中關(guān)于Nib文件講解的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-22 11:49:20

iPhone文件系統(tǒng)NSFileManag

2011-08-15 09:58:25

iPhoneXib文件UITableView

2011-08-09 17:12:30

iPhoneCFRunLoop

2011-08-22 14:21:24

iPhone開發(fā)UIView Anim

2011-08-15 13:44:07

iPhone開發(fā)UITableView

2011-08-22 15:15:49

iPhone開發(fā)NSMutableAr排序

2011-08-08 14:07:49

iPhone開發(fā) 字體

2011-08-16 18:56:11

iPhone開發(fā)Three20

2011-08-12 14:33:06

iPhone緩存文件

2011-08-22 13:46:15

iPhone開發(fā)GameKit 藍(lán)牙

2011-07-06 17:40:43

iPhone SDK

2011-08-18 10:39:46

iPhone開發(fā)界面

2011-07-19 15:33:57

iPhone

2011-08-19 10:35:19

iPhone應(yīng)用Three20

2011-08-17 14:32:44

iOS開發(fā)繪制

2011-08-10 10:23:20

iPhoneArchivingNSCoder

2011-08-09 14:42:07

iPhonePCM播放器

2011-08-12 10:09:23

iPhone開發(fā)多線程

2011-08-05 10:13:45

iPhone開發(fā)工具 Cocoa Xcode

2009-11-04 08:38:30

ADO.NET庫(kù)文件
點(diǎn)贊
收藏

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