我有一個viewController X(不是初始視圖)。 X是幾個父母的一個childViewController(幾個viewController有X作爲他們的孩子)。在X上,有一個標籤,表格和一個導航欄,帶有一個左側欄按鈕,可以「彈出」回到其父項。當應用程序正常啓動時,所有的細節,popToParentViewController,後退按鈕都可以正常工作。但是,如果我要從推送通知啓動應用程序,則X僅顯示導航欄和按鈕(但不起作用)和表視圖。從推送通知啓動時啓動viewController中的所有對象
我不知道爲什麼標籤沒有顯示!後退按鈕不會「返回」。我知道這與「無父母」有關,因爲我已將其設置爲下的以下的「根」。
我該如何實現我想要的代碼?
以下是appDelegate.m
- (void) application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if (application.applicationState == UIApplicationStateInactive || application.applicationState == UIApplicationStateBackground )
{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
bundle: nil];
NotificationsViewController *viewController= [mainStoryboard instantiateViewControllerWithIdentifier:@"NotificationsViewController"];
UINavigationController *nav = [[UINavigationController alloc]
initWithRootViewController:viewController];
[_window setRootViewController:nav];
}
}
Multiple pushViewController:animated:calls是有風險的,因爲UINavigationController在另一個動畫推/拉操作過程中拉動或推動某些東西時會出現令人討厭的毛刺。使用setViewControllers會更好:動畫: –
我怎麼在appDelegate中做到這一點? @MaksymilianWojakowski我不認爲self.window setViewControllers:動畫作品 – user3178926