【iOS開發-72】設定狀態列的兩種方式、程式生命週期以及更好地理解幾大類(對象)之間的關係

來源:互聯網
上載者:User

標籤:style   blog   http   io   ar   os   使用   strong   on   

(1)設定狀態列的2種方式

——第一種方式就是我們在控制器中設定,系統預設就是交給視圖控制器去管理的,這樣不同視圖控制器可以自訂不同的狀態列如下:

-(BOOL)prefersStatusBarHidden{}-(UIStatusBarStyle)preferredStatusBarStyle{}

——如果我們需要交給UIApplication對象管理(iOS6之前就是),則需要如下設定:

先在info.plist中把預設的設定修改掉:


然後直接用如下代碼即可:

- (void)viewDidLoad {    //預設是控制器管理狀態列,不同控制器可擁有不同狀態列    //我們可以設定成application來管理狀態列,這種管理是統一的    [UIApplication sharedApplication].statusBarHidden=YES;    [UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleLightContent;    //下面這種方法還可以設定動畫    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];    [super viewDidLoad];}

(2)程式生命週期

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    ViewController *vc1=[[ViewController alloc]init];    self.window.rootViewController=vc1;    //window是第一個被建立的“視圖”,其他控制器的視圖都是因為顯示在window上才能被使用者看見。    //不使用如下方法是因為,控制器是局部變數,此函數執行完畢,則控制器消滅,而此時它的view還在,存在野指標漏洞。所以不能僅僅載入視圖,需要把整個控制器載入進來,即用上面的方法    //[self.window addSubview:vc1.view];        /**     *  程式如何啟動的?     *  1、先執行main函數     *  2、在UIApplicationMain函數中:建立一個UIApplication對象;建立UIApplication的delegate對象     *  3、delegate對象開始監聽事件     *     3.1 比如程式啟動載入完畢,就調用代理的didFinishLaunching...方法     *     3.2 在上面的方法中,建立UIWindow,然後設定window的rootViewController     *     3.3 最後把window顯示出來(自然就顯示rootViewController的view)     *     *  上面第三步是沒有storyboard,如果有storyboard,那怎麼顯示出來的?     *  1、初始化一個window     *  2、初始化storyboard所指向的那個視圖控制器     *  3、最後把這個視圖控制器設定為window的rootViewController,然後顯示window(就相當於顯示視圖控制器的view,即storyboard的內容)     */      return YES;}

(3)幾大類(對象)之間的關係

UIApplication的對象有一個代理 >>> 就是AppDelegate,這個代理裡面的didFinishLaunching...方法建立了UIWindow >>> 這個UIWindow有一個rootViewController,指向的就是我們常用的視圖控制器ViewController


【iOS開發-72】設定狀態列的兩種方式、程式生命週期以及更好地理解幾大類(對象)之間的關係

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.