根视图控制器已取消分配,因此如何保留它或将其再次添加到我的导航控制器

时间:2014-11-10 20:36:14

标签: ios iphone ios7 uiviewcontroller uinavigationcontroller

用我注销后:

- (IBAction) logoutButtonPressed:(UIButton *)sender
{
    [Users logOut];

    [self.navigationController popToRootViewControllerAnimated:YES];
}

如果我已经登录了12个小时,屏幕会变黑。我想rootview控制器已经解除分配。

这是在appDelegate.m中创建它的方式:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    StartViewController *viewController = [[StartViewController alloc] init];
    StartNavigationController *navigationController=[[StartNavigationController alloc] initWithRootViewController:viewController];
    self.window.rootViewController = navigationController;
    [self.window makeKeyAndVisible];
}

如何让startviewcontroller再次显示?或者无论根是什么?

1 个答案:

答案 0 :(得分:0)

当你分配self.window.rootViewController时,会为该对象创建一个强引用,因此除非指向它的对象被释放,否则不会释放它。 所以你的StartViewController是导航控制器的rootViewController。如何在调用poptoRootViewController的地方添加控制器? 执行pop时,获取导航控制器的视图控制器数组,并确保根视图控制器完好无损。