1. 程式人生 > >【IOS】分隔檢視控制器 (UISplitViewController)

【IOS】分隔檢視控制器 (UISplitViewController)

轉自:http://www.cnblogs.com/wayne23/p/3596814.html

這種控制器只能用於iPad,它可以在iPad螢幕中顯示兩個不同的場景:在橫向模式下,左邊顯示一個表,供使用者選擇;使用者選擇表中的元素後,詳細檢視將顯示該元素的詳細資訊。如果iPad被旋轉到縱向模式,表將消失,而詳細檢視將填滿整個螢幕;要進行導航,使用者可觸控一個工具欄按鈕,這將顯示一個包含表的彈出框。

預設情況下,UISplitViewController的一端連線到一個受導航控制器(UINavigationController)管理的表檢視(UITableViewController),這代表主場景;另一端連線到一個普通檢視控制器(UIViewController),這代表詳細場景。

可以將主場景和詳細場景替換為新的控制器,只需要刪除預設的控制器,然後按住Control鍵,並從分割檢視控制器物件拖曳到新的主場景或詳細場景,再在Xcode提示時選擇Relationship - masterViewController或Relationship - detailViewController。

主場景和詳細場景可以通過分割檢視控制器互相訪問,屬性splitViewController包含一個名為viewControllers的陣列。通過使用NSArray的方法lastObject,可獲取該陣列的最後一個元素(詳細資訊檢視)。通過呼叫方法objectAtIndex,並將索引0傳遞給它,可獲取該陣列的第一個元素(主檢視)。這樣,兩個檢視控制器就可交換資訊了。

主檢視控制器可使用如下程式碼獲取詳細檢視控制器:
UISplitViewController * splitViewController = (UISplitViewController*) self.window.rootViewController; // 用於獲取UISplitViewController 例項

[self.splitViewController.viewControllers lastObject] // splitViewController.viewControllers  是獲取UISplitViewController 的 viewControllers 陣列,它總是包含兩個檢視控制器:一個用於左邊欄,一個用於右邊欄。lastObject 用於獲取陣列的最後一個物件,即右邊欄(詳細檢視控制器)

注:如果splitviewcontroller 連的是navigationcontroller,還需要通過 [self.splitViewController.viewControllers lastObject].topViewController 來獲取詳細檢視控制器

而詳細檢視控制器可使用如下程式碼獲取主檢視控制器:
[self.splitViewController.viewControllers objectAtIndex:0]


相關推薦

IOS分隔檢視控制器 (UISplitViewController)

轉自:http://www.cnblogs.com/wayne23/p/3596814.html 這種控制器只能用於iPad,它可以在iPad螢幕中顯示兩個不同的場景:在橫向模式下,左邊顯示一個表,供使用者選擇;使用者選擇表中的元素後,詳細檢視將顯示該元素的詳細資訊。如

iOS關於檢視的旋轉和復原(CGAffineTransform)

我就以我自己的簡單的旋轉來拋磚引玉了。 首先,你建立一個view,然後實現view 的旋轉動畫和復原 旋轉的的程式碼: [UIView animateWithDuration:2.0f animations:^{ self.tranView.transf

iOSButton點選事件被其父檢視點選手勢UITapGestureRecognizer的遮蔽問題

前幾天在做專案的時候,遇到這個一個問題,在一個檢視也就是UIView上新增一個手勢,然後又在這個View上新增一個UIButton,然後給按鈕新增事件,執行專案的時候我發現,不管是點選按鈕還是檢視上的別的地方執行的都是手勢所擁有的方法,後來到網上找才發現是手勢把按鈕的方法給

iOS代理傳值與塊代碼傳值

ring 方法 nslog 設置代理 轉載 adf delegate alloc 代理傳值 主線程與子線程常常須要進行數據的傳遞。不同的類之間,不同的控制器之間都須要。 並且常常須要監聽一個動作的完畢。而後才去做對應事件。(代理是一對一的關系)。 一、代理傳值 代理

iOSUICollectionView自己定義Layout之蜂窩布局

with top http reserve src 布局 step object .com 網上的UICollectionView的Layout布局,其cell的形狀多為矩形和圓形。 本篇博文將正六邊形作為cell的基本形狀,為您展現獨特的蜂窩布局效果及實現源代碼。 幫

iOSUIDynamicAnimator動畫

set translate logs enc ica cgpoint isp mat .cn 創建動畫 1 UIDynamicAnimator *animator = [[UIDynamicAnimator alloc] initWithReferenceView:sel

NetApp配置NetApp控制器與Linux NTP服務器同步

ntpLinux NTP服務器端配置:1)設置/etc/ntp.conf配置文件[root@localhost etc]# vi /etc/ntp.conf# For more information about this file, see the man pages# ntp.conf(5), ntp_a

iOS淺拷貝和深拷貝

簡單 HR 除了 深淺拷貝 感謝 with 分配 指針 object 淺拷貝和深拷貝 淺拷貝即指針拷貝,可以認為是給一只狗加了一條繩子;深拷貝不但拷貝了對象的指針,還在系統中在分配了一塊內存用來存放拷貝對象的內容,可以認為是產生了一條帶繩子的新狗。即淺拷貝是兩根繩子一條狗

iOSJenkins持續集成iOS

edi 節點 path num nco visio os包 接下來 運行   今天項目經理說讓APP端做一下用Jenkins做持續集成,因為之前沒有做過,所以就開始了解,終於在鍵哥的幫助下,完成了持續集成的功能,感動的不行,在這裏感謝鍵哥。   因為公司的Jenkins是搭

iOS通過NSURLProtocol實現網頁載入本地快取資料

一.專案需求 專案中有個海報生成功能,使用UIWebView載入一些網頁,因為海報使用率比較高,有時載入網頁比較慢會影響使用者體驗,因此我們在APP啟動後,將一些固定資源,如css、圖片等,先快取到本地。載入網頁時,通過NSURLProtocol,優先使用本地的檔案,以加快網頁載入速

iOS中間透明的引導蒙層

需求 如圖口袋蜜蜂app一鍵海報的新手指引圖,需求是遮罩層中間透明的,把底層的第一張海報顯示出來,如圖: 實現 通過UIBezierPath和CAShapeLayer繪製一張中間為透明的黑色半透明遮罩層。 步奏1、新建類PCOnePosterGuide繼承自UIVie

iOS音訊播放之AVAudioPlayer,AVPlayer,AVQueuePlayer

前言 在婚語APP中,分別使用了AVAudioPlayer,AVPlayer,AVQueuePlayer來實現音訊播放功能,下面以婚語的實際需求分別介紹它們的使用方法和區別。 需求1 檔期備忘:使用者新建檔期記錄時,可以進行錄音備忘,錄音完成後可直接播放,儲存檔期時將錄音檔案上傳

iOS日曆行程的增刪改查(完整)

前言 我們可以使用系統提供的EventKit框架來訪問和操作使用者的日曆日程和提醒(雖然日曆和提醒是兩個獨立的app,但是是用同一個框架來處理資料)。同樣地,日曆和提醒的資料的資料,都是儲存在同一個叫做Calendar Database的資料庫中: EventKit不僅能獲

iOSUITableView中section的展開和收起

我們在做專案時,經常遇到UITableView需要展開與收起的情況,類似手機QQ的摺疊,而且根據資料的不同判斷有多少行需要展開與收起.之前做專案的時候也使用過,最近有時間整理,就把之前是怎麼操作的記錄下來。 首先,我們先說下思路: 思路:在寫程式碼的時候我們可以很容易的寫出cell和

postgresql 檢視資料庫叢集建立時間

原文連結:https://blog.csdn.net/ctypyb2002/article/details/80930809 使用 pg_controldata 檢視 Database system identifier $ /usr/pgsql-10/bin/pg_controldata

OracleOracle檢視使用者密碼過期,修改永不過期

01、檢視當前open使用者 select username,account_status,expiry_date,profile from dba_users; 02、檢視目前的密碼過期策略 select * from dba_profiles s where s.profile='D

iOS讓NSLog列印字典顯示得更好看(解決中文亂碼並顯示成JSON格式)

前言 文章的初衷很簡單,是為了能夠正常顯示打印出字典裡面的中文。因為預設情況下,直接列印字典的話,在Xcode控制檯上,中文會是亂碼的,需要Unicode轉碼才能看到中文。 比如列印下面的一個字典 NSDictionary *dict = @{

iOS詳解APP啟動過程

我們都知道,程式的入口是main函式,在用C寫程式碼的時候,都會有個mian函式,但是在OC中,在.m檔案中,我們最常看到的是viewDidLoad()。對於剛從C轉OC的人來說,剛開始有些蒙。其實,OC中也是有mian函式的,只是不實那麼明顯。     1、先執行m

iOS螢幕適配

螢幕適配 1、螢幕適配的發展過程: 程式碼計算frame -> autoreszing(父控制元件和子控制元件的關係) -> autolayout(任何控制元件都可以產生關係) -> sizeclass   沒有螢幕適配,直接使用frame固定子控制元件的

iOSMVC、MVP和MVVM

MVC MVC模式涉及三種物件:模型物件、檢視物件、控制器物件。模型物件中儲存有應用程式的資料,檢視物件負責顯示模型物件的資料,並且允許使用者對其進行編輯。控制器物件是模型物件和檢視物件之間的協調者,負責對模型物件進行初始化,並將模型物件傳遞給檢視物件進行解析顯示。