怎麼在其他視圖控制器中切換根視圖控制器
例如在一個普通的視圖控制器UIViewControler中切換根視圖控制器
1、利用UIApplacation這個類獲取當前應用程序
2、設置委托對象,注意這個委托對象應為Appdelegate的一個對象
3、然後利用委托對象設置根視圖控制器
例:現在要在UIViewControler這個視圖控制器中設置自己為根視圖控制器
1、首先包含頭文件Appdelegate.h
2、獲取當前應用程序
UIApplication *app =[UIApplication sharedApplication];
3、創建一個UIViewControler的對象,並把它設置為委托
AppDelegate *app2 = app.delegate;
4、最後就可以設置根視圖控制器了
app2.window.rootViewController = self;
這樣就把自身視圖控制器作為根視圖控制器了,當然如果想讓別的視圖控制器作為根視圖控制器,那就創建一個其他的視圖控制器,然後作為根視圖控制器,這樣就能夠實現視圖跳轉了。
例如創建了一個繼承於UITabBarControler (標簽欄控制器)的一個視圖控制器 LCTabBarViewControler
為了實現視圖跳轉,想把 LCTabBarViewControler成為新的根視圖控制器。這就很容易實現了
1、首先要包含頭文件 LCTabBarViewControler.h
2、接著上面的第三步
3、創建一個視圖控制器實例
LCTabBarViewControler *temp = [[ LCTabBarViewControler alloc] init]
4、然後如上面第四步,把 self 改為temp就大功告成了
app2.window.rootViewController = temp;
也許你會說為什麼不直接通過添加子視圖subview,來實現視圖跳轉呢,我承認,這樣也可以實現,但是如果是一個標簽欄控制器的話,通過添加視圖的方法就會出錯了,所以才有這種通過改變根視圖控制器的方法,來實現這個視圖跳轉。
這也是我在一個小項目中遇到的問題,感覺值得寫出來根大家分享。同時也寫給自己。
如有錯誤歡迎指正,大家共同學習。 —— LC