IOS 講解 UIViewController對象(七)

nirvana柯本 發佈 2024-04-28T05:40:46.144507+00:00

大哥鎮樓,七彈孫悟飯只要撐到第三回合就很強54.- (void)showDetailViewController:(UIViewController *)vc sender:(nullable id)sender(IOS 8.0以後可使用)方法類型:動態參數:1.


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屬性值。



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方法來控制其顯示狀態的變化。

關鍵字: