第十四章 可視化StoryBoard
1.Xib和StoryBoard的對比
相同點:都屬于IB編程的方式,可以快速構(gòu)建GUI。
不同點:xib側(cè)重于單文件(單獨的控制器或者視圖)編輯,storyBoard側(cè)重于多頁面關(guān)聯(lián)。storyBoard可以直觀的梳理出頁面間的邏輯,并且所有頁面跳轉(zhuǎn)邏輯均可在- (void)prepareforSegue:(UIStoryBoardSegue*)segue:(id)sender方法完成,方便界面間數(shù)據(jù)統(tǒng)一管理
2.注意事項:不需要手動創(chuàng)建window,只需將創(chuàng)建好的StoryBoard在應(yīng)用程序配置General中設(shè)置為Main Interface
3.我們可以通過選中控制器,修改 (is initial View Controller),或者直接移動表示程序入口的箭頭
4.利用StoryBoard繪制自定義單元格
1.創(chuàng)建自定義cell是選中左側(cè)TableViewCell
2.繪制自定義UI界面
3.設(shè)置重用標識符
4.將storyBoard文件關(guān)聯(lián)至對應(yīng)的UITableViewControll'er和UITableViewCell子類(自己創(chuàng)建的類)
5.在UITableViewController中完成代碼書寫:設(shè)置section和row數(shù)量,設(shè)置cell,根據(jù)實際情況調(diào)整cell的高度
6.注意:cell不再需要注冊
5.StoryBoard頁面跳轉(zhuǎn)分為兩種
1.代碼方式:使用代碼通過控制器標識來跳轉(zhuǎn)。比如在當(dāng)前頁面的某一個事件中跳轉(zhuǎn)到一個標示為“customVC”的控制器頁面中:[self performSegueWithIdentifier:@"customVC" senderL:nil];
2.連線方式:直接使用拖拽可以給按鈕連線關(guān)聯(lián)兩個頁面:選中按鈕,按住control,從按鈕向下一級頁面連線,按鈕不需要添加響應(yīng)方法
3.方式:
push:push出下個界面
modal:模態(tài)出下個界面
custom:自定義,需要我們自己實現(xiàn)頁面跳轉(zhuǎn),需要自定義segue
6.segue:可視化編程中連接兩個頁面的線條,稱為segue
1.iPhoneGUI開發(fā)中類型主要有三種,包括push、modal、custom
2.其中custom需要我們自定義segue來完成頁面間跳轉(zhuǎn)
3.segue有三個重要屬性:標識符,源控制器,目標控制器
7.自定義segue
1.新建一個類繼承于UIStoryboardSegue
2.選中前一個控制器,按住control鼠標輔助完成連線,選擇custom
3.選中自定義segue,設(shè)置segue的identifier以及關(guān)聯(lián)類
4.在segue類里面重寫perform方法(界面間跳轉(zhuǎn)默認執(zhí)行的方法),自定義跳轉(zhuǎn)效果
- (void)perform{
//獲取源控制器
UIViewController *v1 = (UIViewController*)self.sourceViewController;
//獲取目標控制器
UIViewController *v2 = (UIViewController*)self.destinationViewController;
//自定義頁面切換效果
[UIView transitionFromView:v1.view toView:v2.view duration: 10 options:UIViewAnimationOptionTransitionCurlDown completion:^(BOOL finished) {
//動畫完成后執(zhí)行的部分
???????????????????? }];
}
8.界面?zhèn)髦? storyboard界面間跳轉(zhuǎn)會執(zhí)行
- (void)prepareForSegue:(UIStoryboardSeugue*)segue sender:(id)sender方法,方便界面間數(shù)據(jù)統(tǒng)一管理。
依據(jù)不同的segue標識符來完成數(shù)據(jù)處理
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
CustomViewController *customVC = (CustomViewController*)segue.destinationViewController;
if ([segue.identifier isEqualToString:@"push"]) {
customVC.tempString = self.textField.text;
}else{ NSLog(@"其他情況處理??????????????????");
}
}
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。