十年專注于品牌網站建設 十余年專注于網站建設_小程序開發_APP開發,低調、敢創新、有情懷!
      南昌百恒網絡微信公眾號 掃一掃關注
      小程序
      tel-icon全國服務熱線:400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡微信小程序

      百恒網絡

      南昌百恒網絡

      ipd應用中的UISplitViewController控制器

      百恒網絡 2017-05-12 5651

      通過昨天的講述我們知道了UIPopoverController控制器和UISplitViewController控制器是iPad專用的視圖控制類,我們著重了解了UIPopoverController控制器,今天南昌APP開發公司小編來講解一下UISplitViewController控制器。

      iPad自帶的E-mail應用,它采用UISplitViewController控制器,該控制器是iPad中構建導航模式應用的基礎,可以呈現屏幕分欄視圖的效果。由于iPad要比iPhone大很多,所以不能簡單地采用iPhone的導航模式。圖1是橫屏SplitView視圖,此時屏幕被分割為左右兩個視圖,右側是DetailView,負責顯示詳細信息,左側是MasterView,其中有一個導航列表,用于為右側的DetailView導航。需要說明的是,MasterView的導航列表占有320點的固定大小。在豎屏的情況下,MasterView會隱藏起來,如圖2所示。

      圖1 橫屏SplitView視圖

      圖2豎屏SplitView視圖

      有時候,我們會根據需要在MasterView或DetailView中添加導航欄控制器(UINavigationController),以便在自己的視圖中采用樹形導航模式。圖3是iPad自帶的E-mail應用,左右視圖都帶有導航欄。MasterView內部就采用樹形導航模式,這樣會承載大量的信息而不混亂。

      圖3 iPad自帶的E-mail應用

      下面我們通過一個案例來熟悉一下UISplitViewController控制器。圖4是橫屏情況的SplitView視圖,顯示了MasterView和DetailView,其中MasterView中有Blue View和Yellow View兩個選擇項目,當選擇其中一個時,右邊的DetailView就會顯示相應的藍色和黃色視圖。點擊Tap按鈕,會彈出AlertView警告框提示為藍色還是黃色視圖。

      圖4 SplitView視圖案例

      使用Xcode創建工程SplitViewSample,模板采用Single View Application,Devices選擇iPad。刪除由模板生成的ViewController文件,然后用Xcode工具創建DetailViewController、BlueViewController和YellowViewController視圖控制器,它們的父類是UIViewController,不用選擇xib文件。再創建MasterViewController視圖控制器,其父類是UITableViewController,不用選擇xib文件。

      打開故事板文件,刪除由模板生成的View Controller,從對象庫中拖曳Split View Controller到設計界面,如圖5所示。

      圖5 從對象庫中拖曳Split View Controller到設計界面

      從圖5中可見,共生成了4個視圖控制器。默認情況下,MasterView內部采用導航控制器(NavigationController)作為它的根視圖控制器,DetailView采用普通視圖控制器作為它的根視圖控制器。

      我們需要設置Split View Controller為初始視圖控制器,選擇場景中的Split View Controller,然后選擇右邊的屬性檢查器,選中View Controller→Is Initial View Controller復選框。

      我們需要將自己創建的視圖控制器類與故事板中的View Controller關聯起來。選擇場景中的Master ViewController,打開其標識檢查器,選擇Custom Class→Class下拉列表中的MasterViewController類。再選擇場景中的DetailView Controller,打開標識檢查器,選擇Custom Class→Class下拉列表DetailViewController類。從對象庫中拖曳兩個View Controller到設計界面,按照圖6在每個視圖中放置一個按鈕。

      圖6 視圖控制器設計界面

      在設計界面中選擇場景中的Blue View Controller,打開其標識檢查器,選擇Custom Class→Class下拉列表中的BlueViewController類,修改StoryboardID為blueViewController。然后再選擇View,將其背景改為藍色。添加一個按鈕到視圖中,并為按鈕添加動作事件。

      類似地,選擇Yellow View Controller ,打開其標識檢查器,選擇Custom Class→Class下拉列表中的YellowViewController類,修改Storyboard ID為yellowViewController。然后再選擇View,將其背景改為黃色。添加一個按鈕到視圖中,并為按鈕添加動作事件。

      下面南昌APP開發公司小編來看看MasterViewController中的屬性和視圖加載方法viewDidLoad,相關代碼如下:

      其中listData屬性用于存放MasterView中的導航列表標題,detailViewController屬性是DetailViewController類型。

      在視圖加載方法中,第①行代碼用于創建并初始化listData屬性,第②行代碼用于初始化splitViewController屬性,這里的 self.splitViewController 用于獲得它們所在的分欄視圖控制器。第③行代碼中,UISplitViewController的viewControllers屬性是NSArray集合類型。viewControllers集合中存放兩個視圖控制器,其中第一個元是MasterViewController視圖控制器,第二個元素是DetailViewController視圖控制器。第④行代碼用于獲得最后一個元素(第二個元素)。

      MasterViewController是表視圖控制器,它實現的數據源和委托協議方法如下:

      這里實現表視圖委托方法tableView:didSelectRowAtIndexPath:的目的是根據選擇的行號更新DetailView,其中updateView:方法是我們在DetailViewController中定義的方法,用于更新視圖。

      接下來,我們看看DetailViewController中的屬性和視圖加載方法viewDidLoad,相關代碼如下:

      在上述代碼中,屬yellowViewController和blueViewController是DetailView中要展示視圖的控制器。

      在viewDidLoad方法中,我們通過Storyboard ID分別創建藍色視圖控制器和黃色視圖控制器,然后通過addSubview:方法把藍色和黃色視圖放入到DetailView中。

      在DetailViewController中,視圖方法updateView:的代碼如下:

      我們首先通過iPhone和iPad設備使用場景上的差異,了解了二者在設計和開發時存在差異的根由。文章出自南昌APP開發公司--百恒網絡,了解更多相關知識,關注百恒網絡官網:www.dgscpc.com

      400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡小程序

      歡迎您的光顧,我們將竭誠為您服務×

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      国产在线精品一区二区| 在线观看亚洲精品专区| 国产亚洲精品美女| 免费精品久久天干天干| 国产精品一久久香蕉产线看| 精品美女在线观看| 日韩人妻无码精品久久久不卡 | 精品久久久久久久中文字幕| 91精品无码久久久久久五月天| 日韩三级草久国产| 热久久这里只有精品| 国产精品亚洲专区无码WEB| 国产日韩精品无码区免费专区国产| 真实国产乱子伦精品免费| 国产精品亚洲玖玖玖在线观看| 国内精品久久久久久99蜜桃| 亚洲精品成人无限看| 亚洲国产午夜精品理论片在线播放 | 国产亚洲精品成人久久网站| 亚洲精品乱码久久久久久久久久久久 | 日韩一级特黄av毛片| 久久国产乱子免费精品| 日本精品在线观看视频| 日韩人妻精品一区二区三区视频 | 精品国产免费一区二区三区| 国产亚洲精品成人AA片| 国内精品免费久久影院| 亚洲精品一二三区| 中文国产成人精品少久久| 精品亚洲成A人在线观看青青| 久久久久无码精品亚洲日韩| 国产在线麻豆精品| 久久ww精品w免费人成| 一本大道无码人妻精品专区| 亚洲精品无码专区在线| 国产人妖乱国产精品人妖| AV在线播放日韩亚洲欧| 精品国产v无码大片在线观看| 国产综合成人色产三级高清在线精品发布 | 国产福利精品视频| 国产精品久久久久…|