天天看點

IOS 講解 UIViewController對象(七)

作者:Nirvana柯本
IOS 講解 UIViewController對象(七)

大哥鎮樓,七彈孫悟飯隻要撐到第三回合就很強

54.

- (void)showDetailViewController:(UIViewController *)vc sender:(nullable id)sender(IOS 8.0以後可使用)

方法類型:動态

參數:1.vc參數為要顯示視圖控制器執行個體。2.sender參數為擴充參數,可以傳nil。

傳回值:無。

功能:作用為系統來選擇用何種方式來顯示視圖控制器。和showViewController方法的差別别就是本方法是為UISplitViewController控制器來使用的。其餘邏輯和showViewController介紹時相同。

55.

UIUserInterfaceStyle preferredUserInterfaceStyle(tvOS 11.0以後可使用)

隻讀,類似preferredStatusBarStyle屬性,控制顯示的樣式,如果有在容器控制器内顯示也要參照childViewControllerForUserInterfaceStyle屬性。這點也和preferredStatusBarStyle屬性類似。該值如果改變後,需要調用setNeedsUserInterfaceAppearanceUpdate方法進行更新。

56.

- (void)setNeedsUserInterfaceAppearanceUpdate(tvOS 11.0以後可使用)

方法類型:動态

參數:無

傳回值:無。

功能:作用是重新整理preferredUserInterfaceStyle屬性更改後讓界面顯示對應的樣式,重新整理機制應該和之前介紹的重新整理機制相同。

57.

UIUserInterfaceStyle overrideUserInterfaceStyle(tvOS 13.0及IOS13.0以後可使用)

讀寫,設定ios13以後加入的白天和暗夜模式。在這兩個模式中對于視圖顔色的呈現有不同的效果,可以每個模式比對一套,如果不想相容兩個模式隻使用一個模式,最簡單的方法,直接設定程式的window的overrideUserInterfaceStyle屬性。

58.

UIInterfaceOrientationMask supportedInterfaceOrientations

隻讀,此屬性傳回一個UIInterfaceOrientationMask值,用于指定視圖控制器支援的方向。當裝置方向改變時,系統在根視圖控制器或填充視窗的最頂層模态視圖控制器上調用此方法。通過重寫該方法,可以向系統表明可以向哪個方向進行旋轉。如果視圖控制器支援新方向,系統将旋轉視窗和視圖控制器。隻有當視圖控制器的should Autorotate方法傳回YES時,系統才會調用此方法。

注意:如果目前顯示的視圖控制器如果在一個UINavigationController這種容器中,那麼就要把在UINavigationController在目前顯示的視圖控制器的supportedInterfaceOrientations的值傳給系統才有意義。舉例:根視圖控制器為一個UINavigationController。是以在重寫他的supportedInterfaceOrientations屬性時,應該是傳回UINavigationController目前顯示的視圖控制器的supportedInterfaceOrientations屬性值。

IOS 講解 UIViewController對象(七)

59.

UIInterfaceOrientation preferredInterfaceOrientationForPresentation

隻讀,當顯示視圖控制器全屏時,系統調用此方法。如果視圖控制器支援兩個或多個方向,但内容在其中一個方向上顯示得最好,請重寫此方法并傳回首選方向。

如果視圖控制器實作此方法,則視圖控制器的視圖将以首選方向顯示(盡管稍後可以将其旋轉到另一個受支援的旋轉)。如果未實作此方法,系統将使用狀态欄的目前方向顯示視圖控制器。這屬性本人基本沒用過,都是使用的預設值。

60.

BOOL shouldAutorotate (IOS16.0以後被棄用)

隻讀,作用是通過重寫該屬性傳回YES或NO來決定目前視圖控制器是否可以進行旋轉。本來不打算介紹這個的,但不說這個以上的屬性介紹不完整。注意事項和supportedInterfaceOrientations一樣,而且該屬性被系統調用順序在supportedInterfaceOrientations屬性前。如果傳回NO,系統将不在調用該視圖控制器的supportedInterfaceOrientations屬性。

61.

- (void)setNeedsUpdateOfSupportedInterfaceOrientations

方法類型:動态

參數:無。

傳回值:無。

功能:作用為通知視圖控制器有關支援的界面方向或用于顯示的首選界面方向的更改。就是說當我們試圖用代碼進行螢幕的旋轉時,需要調用該方法進行觸發,告知系統現在目前視圖控制器要變更界面方向了。

62.

BOOL editing

讀寫,一個布爾值,訓示視圖控制器目前是否允許使用者編輯視圖内容。如果目前視圖控制器navigationItem屬性的一個自定義視圖設定為editButtonItem方法,當設定為YES時,則關聯的導航控制器将顯示“完成”按鈕;為NO時,顯示為“編輯”按鈕。

63.

- (void)setEditing:(BOOL)editing animated:(BOOL)animated

方法類型:動态

參數:1.editing參數為設定編輯模式的狀态。2.animated參數為是否要使用動畫效果來表現狀态改變。

傳回值:無。

功能:作用為設定目前視圖控制器是否為編輯狀态,和editing屬性調用功能差不多,差別是可以使用動畫效果。

64.

UIBarButtonItem *editButtonItem

隻讀,一個UIBarButtonItem類型的“編輯|完成”按鈕,該按鈕可用作navigationBar項的自定義視圖。可通過editing屬性和setEditing方法來控制其顯示狀态的變化。

繼續閱讀