標籤: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】設定狀態列的兩種方式、程式生命週期以及更好地理解幾大類(對象)之間的關係