2015-09-04 91 views
0

我提出一个教程认为,从AppDelegate中:解聘的viewController从AppDelegate中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

.... 

    EERootVC *rootVC = (EERootVC *)self.window.rootViewController; 
    UINavigationController *navcon = (UINavigationController*)rootVC.contentViewController; 

    EETutorialRootVC *rootTutorialViewController = [rootVC.storyboard instantiateViewControllerWithIdentifier:@"EETutorialRoot"]; 

[navcon pushViewController:rootTutorialViewController animated:NO]; 

return YES 
} 

我怎么能开除一旦完成了这个新的看法?

我已经试过这样:

[self.navigationController popViewControllerAnimated:YES]; 

其中一期工程,但鉴于它返回到似乎被切断(移?)

回答

0

它不会是self因为在调用selfAppDelegate被引用本身(这将是AppDelegate

如果你想从AppDelegate你只需做同样的事情驳回你没有提出它:

[rootTutorialViewController popViewControllerAnimated:YES]; 

但你更可能不会关闭它在AppDelegate,你更多的则可能将关闭它在视图控制器主类,这是您将调用自

0

嗯,它似乎你使用了一些你必须提供洞察力的自定义设置,所以我们可以给你一个更好的答案。

如果你的window.rootViewController是UINavigationController的一个实例,你会有非常的默认行为,如果你推动并弹出ViewControllers,一切都会看起来不错。

但是你从window.rootViewController的自定义属性中获得了UINavigationController。这表明EERootVC是一些自定义的ContainerViewController,我的下注是在你添加EERootVC.contentViewController到它的视图并设置它的框架的地方出了问题。

例如,将UINavigationController设置为Window的rootViewController,我敢打赌它的工作原理也是如此。

除此之外,你没有动画推动它,并用动画消除它。为了获得良好的用户体验,您可能需要再次考虑这种方法。

相关问题