亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

[iOS基礎控件-6.11.1]-控制器&控制器view

2019-11-14 19:43:56
字體:
來源:轉載
供稿:網友
A.控制器的創建
控制器常見的創建方式有以下幾種
通過storyboard創建

直接創建
1 ViewController *vc = [[ViewController alloc] init];
     xib設置了class后,當xib的文件名跟controller類名一樣的時候,用這個方法默認就會加載xib中的controller
 
指定xib文件來創建
1 ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
 
1.從storyboard中創建
(1)創建一個Empty application (不帶storyboard)
Image(193)
 
(2)創建window并加到screen上
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {2     // 手動添加window到screen3     self.window = [[UIWindow alloc] init];4     self.window.frame = [[UIScreen mainScreen] bounds];5     self.window.backgroundColor = [UIColor grayColor];6     [self.window makeKeyAndVisible];7     return YES;8 }
 
(3)創建一個storyboard,拖入一個controller
Image(194)
 
Image(195)
 
 
 
 
(4)取出storyboard(其實就是相當于xib)
1     // 2.取得stroyboard2     UIStoryboard *sb = [UIStoryboard storyboardWithName:@"mysb" bundle:nil];
 
(5)設置storyboard上controller為rootViewController
 
 
有兩種方式取得storyboard上的controller
a.直接使用入口controller,這個view的背景色是橄欖綠
Image(196)
 
設置storyboard中的ViewController的class為自定義的controller
6A478DD1-106A-4AF5-8BBF-2B3E85AAA454
 
1     // 3.1直接使用InitialViewController2     self.window.rootViewController = [sb instantiateInitialViewController];
 
Image(197)
 
b.使用ID
設置ViewController的class
DFF26141-20C2-4CBB-B113-C46B912EDE58
 
 
再拖入一個ViewController,設置view的背景色是黃色,設置ID是”vc2"
Image(198)
 
1     // 4.使用ID取得controller, 設置rootViewController2     self.window.rootViewController = [sb instantiateViewControllerWithIdentifier:@"vc2"];
 
Image(199)
 
完成的加載過程:
 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 2     // 1.手動添加window到screen 3     self.window = [[UIWindow alloc] init]; 4     self.window.frame = [[UIScreen mainScreen] bounds]; 5     self.window.backgroundColor = [UIColor grayColor]; 6     [self.window makeKeyAndVisible]; 7     8     // 2.取得stroyboard 9     UIStoryboard *sb = [UIStoryboard storyboardWithName:@"mysb" bundle:nil];10    11     // 3.取出storyboar中的controller12     // 3.1直接使用InitialViewController13     ViewController *controller = [sb instantiateInitialViewController];14    15     // 3.2使用ID16     ViewController2 *controller2 = [sb instantiateViewControllerWithIdentifier:@"vc2"];17    18     // 4.設置rootViewController19     self.window.rootViewController = controller2;20    21     return YES;22 }
 
總結:
1.創建Single View Application的時候,項目會自帶一個storyboard,其實就是做了上面的事情
設置了Main storyboard 的文件,就會自動加載storyboard
Image(200)
 
2.不同的controller類負責不同的界面的操作
66169713-9BE0-4E3A-A62B-DA2C67BDDA8F
 
2.直接創建
(不詳述)
 
3.指定xib文件創建
在之前沒有storyboard的時候使用這種方法
(1)創建一個controller
Image(201)
 
(2)創建一個xib
Image(202)
 
(3)在xib拖入兩個view,設置一些特征標識,方便對比
Image(203)
 
(4)設置其中一個view為控制器的view
a.更改 File’s Owner 的class為自定義的controller
Image(204)
 
b.設置controller的view
Image(205)
 
(5)從xib加載controller,并把view顯示到window上
 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 2     // 1.手動添加window到screen 3     self.window = [[UIWindow alloc] init]; 4     self.window.frame = [[UIScreen mainScreen] bounds]; 5     self.window.backgroundColor = [UIColor grayColor]; 6     [self.window makeKeyAndVisible]; 7   8     // 從xib加載控制器, 設置rootViewController 9     self.window.rootViewController = [[XibViewController alloc] initWithNibName:@"myx" bundle:nil];10     11     return YES;12 }
 
Image(206)
 
總結:
1.storyboard:(這里使用ViewController2為rootViewController)
Image(207)
 
xib:(使用view1作為顯示的view)
Image(208)
 
 
B.創建控制器的view
控制器的view創建有多種方式,(按照優先級進行創建,僅使用最優先的方式)
  • loadView代碼(controller實現loadView方法)
  • storyboard描述
  • xib
 
Image
 
 

最新版的官方文檔:

Image(214)

 
1.通過loadView
(1)創建一個controller、storyboard、xib
Image(210)
 
(2)配置好storyboard和xib的class為自定義的controller
(3)給storyboard和xib的view加上明顯的標志
Image(211)
 
Image(212)
 
(4)在controller類中實現loadView(當controller的view是空的時候,就會調用loadView
 1 // 加載view,這是延遲加載,當需要使用view而view是空的時候調用 2 - (void)loadView { 3     NSLog(@"loadView..."); 4     self.view = [[UIView alloc] init]; 5     self.view.frame = [[UIScreen mainScreen] bounds]; 6     UILabel *label = [[UILabel alloc] init]; 7     label.frame = CGRectMake(40, 40, 100, 100); 8     label.text = @"loadView"; 9     [self.view addSubview:label];10 }
 
(5)在delegate中配置controller到window上
a.配置storyboard的controller為rootViewController
 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 2     // 配置window 3     self.window = [[UIWindow alloc] init]; 4     self.window.frame = [[UIScreen mainScreen] bounds]; 5     self.window.backgroundColor = [UIColor grayColor]; 6     7     // 配置storyboard中的controller為rootViewController 8     self.window.rootViewController = [[UIStoryboard storyboardWithName:@"test" bundle:nil] instantiateInitialViewController]; 9   10      // 配置xib中的controller為rootViewController,主要要使用帶有loadView的controller11 //    self.window.rootViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];12    13     // 顯示window14     [self.window makeKeyAndVisible];15     return YES;16 }17  
會發現沒有起作用
Image(213)
 
b.同樣,使用xib中的controller為rootViewController,只要loadView存在,也不會起作用
1      // 配置xib中的controller為rootViewController,主要要使用帶有loadView的controller2     self.window.rootViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
 
總結:
在配置rootViewController的時候,如果配置的controller中實現了loadView方法,就會覆蓋storyboard或xib中的view
 
 
 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品99久久久久| 国产成人精品久久久| 91精品在线影院| 精品偷拍一区二区三区在线看| 在线播放国产一区中文字幕剧情欧美| 国产一区玩具在线观看| 日韩欧美国产高清91| 国产成人福利视频| 日韩视频欧美视频| 国产91ⅴ在线精品免费观看| 亚洲欧洲高清在线| 国产偷亚洲偷欧美偷精品| 亚洲欧美成人一区二区在线电影| 91亚洲精品久久久| 欧美裸体男粗大视频在线观看| 精品视频偷偷看在线观看| 国模gogo一区二区大胆私拍| 国产精自产拍久久久久久蜜| 2019中文字幕在线免费观看| 日韩精品在线观看一区二区| 日本成人激情视频| 国产亚洲欧美另类中文| 热99精品只有里视频精品| 欧美中文在线字幕| 欧美日韩国产精品专区| 欧美综合在线观看| 米奇精品一区二区三区在线观看| 欧美日韩一区二区免费在线观看| 国产欧美一区二区三区久久| 日本国产欧美一区二区三区| 欧美日韩在线免费| 国产精品久久久久久av| 亲子乱一区二区三区电影| 欧美在线www| 亚洲自拍高清视频网站| 亚洲国内精品视频| 亚洲性线免费观看视频成熟| 欧美亚州一区二区三区| 亚洲欧美中文字幕| 538国产精品一区二区在线| 日韩精品在线播放| 91精品国产91久久久久久久久| 久久伊人免费视频| 亚洲精品99久久久久| 亚洲的天堂在线中文字幕| 欧美激情中文字幕在线| 最近中文字幕mv在线一区二区三区四区| 久久久久久久一区二区三区| 成人情趣片在线观看免费| 欧美专区在线播放| 国产成人在线亚洲欧美| 国产精品69av| 亚洲国产成人久久综合| 黑人极品videos精品欧美裸| 一区二区三区日韩在线| 国内伊人久久久久久网站视频| 韩剧1988在线观看免费完整版| 黄色成人在线免费| 久久精品成人欧美大片| 国产精品日韩一区| 亚洲欧洲国产一区| 91亚洲国产成人精品性色| 日韩禁在线播放| 538国产精品一区二区在线| 国产精品日韩av| 7777精品久久久久久| 国产精品久久久久久久美男| 国产精品一区=区| 国产精品视频久久| 欧美在线欧美在线| 成人写真福利网| 亚洲第一区在线| 成人午夜在线视频一区| 91精品国产91久久久久| 亚洲女人被黑人巨大进入| 亚洲人成电影网站色…| 国产999精品久久久| 91高清视频免费观看| 日本不卡免费高清视频| 韩国v欧美v日本v亚洲| 国产福利成人在线| 亚洲精品之草原avav久久| 国产精品成人v| 日韩福利视频在线观看| 亚洲天堂色网站| 免费不卡在线观看av| 亚洲国产精品va在线| 日本高清+成人网在线观看| 亚洲aⅴ男人的天堂在线观看| 国产成人精品av在线| 亚洲自拍偷拍色图| 国产一区二区三区高清在线观看| 1769国产精品| 中文字幕国产亚洲2019| 91精品国产高清自在线| 欧美激情啊啊啊| 亚洲欧美日韩中文视频| 亚洲国产成人在线播放| 久久久精品免费视频| 77777少妇光屁股久久一区| 亚洲男人第一av网站| 97av视频在线| 91精品国产91久久久| 情事1991在线| 亚洲日本成人女熟在线观看| 国产精品网站入口| 日韩在线视频网| 亚洲图片欧美日产| 日韩欧美精品免费在线| 成人国产精品久久久| 国产精品视频一区国模私拍| 在线播放日韩av| 欧美日韩国产中文精品字幕自在自线| 青草成人免费视频| 国产精品久久久久9999| xxxxx成人.com| 亚洲成人激情在线| 91天堂在线视频| 久久久视频精品| 欧美大片在线免费观看| 欧美极品少妇与黑人| 日韩av在线一区| 久久久国产影院| 日韩电影中文字幕| 国产精品扒开腿做爽爽爽的视频| 久久久人成影片一区二区三区观看| 欧美午夜精品久久久久久浪潮| 亚洲第一国产精品| 亚洲综合视频1区| 亲子乱一区二区三区电影| 少妇av一区二区三区| 久久亚洲精品一区二区| 亚洲精品一区二区在线| 亚洲国内精品在线| 国产成人精品久久久| 九九热这里只有在线精品视| 亚洲国产精品福利| 欧美精品videosex性欧美| 色综合久久久久久中文网| 国产精品久久久久久久久久久久久久| 亚洲香蕉在线观看| 日韩av片免费在线观看| 亚洲午夜精品久久久久久性色| 久久久久久高潮国产精品视| 欧美人在线观看| 国产一区二区丝袜高跟鞋图片| 91免费版网站入口| 亚洲国产97在线精品一区| 欧美精品在线播放| 日韩精品在线观| 欧美一区二区三区……| 91极品女神在线| 欧美中文在线字幕| 国产精品国产三级国产专播精品人| 欧美日韩激情小视频| 91超碰caoporn97人人| 欧美又大又粗又长| 少妇av一区二区三区| 亚洲国产天堂久久综合网| 久久精品一偷一偷国产| 久久久久久国产精品三级玉女聊斋| 精品久久久av| 国产丝袜精品第一页| 亚洲国产精品成人一区二区|