[英]Can't push to View Controller from AppDelegate without losing Navigation Bar and Tab Bar setup iOS
我嘗試從app delegate推送到特定的視圖控制器,而不會丟失先前設置的導航欄和標簽欄項目設置。
如我的主故事板中所示:
在TypeNameVC中執行1次操作后,在應用程序重新啟動時,我想跳過AppDelegate中didFinishLaunchingWithOptions
中的LogInVC和TypeNameVC轉發到MapViewController或任何其他標簽欄控制器的VC。
此代碼使用新的導航欄初始化新的導航控制器,並且缺少標簽欄控制器。
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
//To instantiate Main.storyboard.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
//To instantiate VC to go to.
MapViewController *mapVC = (MapViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MapViewControllerID"];
//To push to instantiated VC.
[navigationController pushViewController:mapVC animated:YES];
我試圖performSegue
使用SEGUE到標簽欄控制器,但在導航控制器棧只有LoginViewController(我檢查了它[navigationController viewControllers]
我閱讀了整個Stack Overflow,我做了幾十個組合,但我無法弄清楚解決方案。 我將不勝感激任何幫助/建議。
更新的問題屏幕: 屏幕
看看屏幕圖像。 第一行屏幕顯示了如果我“正常”導航它的樣子。 第二行顯示如果我從AppDelegate推送到MapVC會發生什么。 我需要的是在保持導航和標簽欄設置的情況下跳過前兩個VC。
當我導航“正常”標簽欄控制器並且它的VC被正確分配。
2016-06-08 12:37:44.394 Checkpoint [4196:1034786]導航控制器VC的:(LogInViewController:0x135d50b00,
TypeNameViewController:0x135f455b0,
UITabBarController:0x135f1d180
)
2016-06-08 12:37:44.394 Checkpoint [4196:1034786] Tab Bar Controller VC :(
MapViewController:0x137078cf0,
PlacesTableViewController:0x135f1d7d0,
FriendsTableViewController:0x137083350
)
當我直接推送到MapVC時,他們沒有。 我確實知道發生了什么,但我知道如何編寫該解決方案。
導航控制器VC :(
LogInViewController:0x15fd5ccf0,
MapViewController:0x15fd6ffa0
)
2016-06-08 12:31:53.813 Checkpoint [4187:1033755] Tab Bar Controller VC :( null)
為可見的導航欄和標簽欄自定義MapViewController類:
- (instancetype)init
{
// init code
self.hidesBottomBarWhenPushed = NO;
retur self;
}
-(void)viewWillAppear:(BOOL)animated
{
// some code
[self.navigationController setNavigationBarHidden:NO];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.