你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發-UI (十)StoryBoard

iOS開發-UI (十)StoryBoard

編輯:IOS開發綜合

明天這篇是UI的最後一篇了,前面再整理網絡篇

知識點

1.UIStoryBoard引見

2. UIStoryBoard的界面跳轉

3. UIStoryBoard界面之間的傳值

=========================      

UIStoryBoard引見      

    UIStoryBoard是你可以用來定義用戶界面的一種新的方式,像xib。與xib不同的是它可以同時管理多個ViewController,而且可以在UIStoryBoard中配置ViewController 之間的跳轉關系。 假如主窗口只要一個view controller是作為UIStoryBoard的第一個界面,就需求勾選上 Initial Scene。UIStoryBoard將原有工程中的一切xib文件集成在一同,用拖拽的方式樹立起兩個viewController之間的跳轉關系,使得整個順序的UI跳轉邏輯清楚明了。運用UIStoryBoard後,界面相關的代碼編寫將更少。

 

1.假如主窗口只要一個view controller是作為story board的第一個界面,就需求勾選上 Initial Scene。

選中is initial view controller 以後的scene成為進入使用第一個scene

 

2.在UIStoryBoard當中可以直接在UITableView上定制cell

 

========================= 

UIStoryBoard的界面跳轉 

3.留意push和present的區別

  1).push對應pop,present對應dismiss;

  2).present只能逐級前往,push一切視圖由視圖棧控制,可以前往上一級,也可以前往到根vc,其他vc。

  3).present普通用於不同業務界面的切換,push普通用於同一業務不同界面之間的切換。

4.如何跳轉到未連線的控制器

1)+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil;

作用:獲取某個對應的UIStoryboard對象

 

2)- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier

作用:獲取該UIStoryboard的文件中的某個帶有identifier標識的控制器 //跳轉到未銜接的控制器

    

//獲得Main.StoryBoard

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

//經過StoryBoardID取得對應的控制器對象

UIViewController *ctl = [storyBoard instantiateViewControllerWithIdentifier:@"ctlC"];

//代碼跳轉
[self.navigationController pushViewController:ctl animated:YES];

 

 

 

6.如何回到前一個界面

 

在上一級視圖控制器當中完成一個辦法,要滿足一下格式

-(IBAction)+恣意辦法名+(UIStoryboardSegue *)+恣意變量名

//UIStoryBoard的連線回跳辦法

-(IBAction)unWindingSegue:(UIStoryboardSegue *)segue{

NSLog(@"sourceViewController = %@ destinationViewController = %@",segue.sourceViewController,segue.destinationViewController);

//作用:在反向傳值當中會使用到

 

 

 

========================= 

 UIStoryBoard界面之間的傳值

 

1.正向傳值

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

作用:行將切換場景時分調用

//當切換界面(push,present)的時分,就會調用以下辦法

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{


    //正向傳值

    if ([segue.identifier isEqualToString:@"login"]) {

        LoginViewController *ctl = segue.destinationViewController;

        //賦值

        ctl.userNameStr = self.userNameTF.text;

        ctl.passwordStr = self.passWordTF.text;

    }

 

 

 

2.反向傳值(傳統的block,協議代理,告訴中心,單例傳值仍然見效)

-(IBAction)unWind:(UIStoryboardSegue *)segue

作用:前往上一個場景時分調用

 

//UIStoryBoard的連線回跳辦法

//先完成回跳辦法,才干連線

-(IBAction)unWindingSegue:(UIStoryboardSegue *)segue{
    //反向傳值(UIStoryBoard公用)
    //判別能否點擊的是注冊完成

    if ([segue.identifier isEqualToString:@"finish"]) {
        //嚴謹

        if ([segue.sourceViewController isKindOfClass:[RegisterViewController class]]) {

            RegisterViewController *ctl = segue.sourceViewController;

        //刷新UI

            self.userNameTF.text = ctl.userNameTF.text;

            self.passWordTF.text = ctl.passWordTF.text;

//作用:在反向傳值當中會使用到
        }
    }

 

【iOS開發-UI (十)StoryBoard】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved