如何释放掉当前视图,并跳转到下个view

如题,当前在登陆界面,用户登陆后几乎不会再回到该界面,所以想释放掉该界面的内存并跳转到主界面。

不太理解presentmodelview的过程,但是dissmiss后会回到以前的界面,好像以前的界面并没有释放内存。
求人解答下该方法具体的过程 以及怎么实现我要的效果。
navigationviewcontroller 好像不太行

--- 代码 ---

    NewJourneyViewController *addJourneyView = [[NewJourneyViewController alloc] init];
    UINavigationController *navAddViewController = [[UINavigationController alloc] initWithRootViewController:addJourneyView];
    [addJourneyView release];
    [self presentViewController:navAddViewController animated:YES completion:nil];
    [navAddViewController release];

这里present了viewB,viewB里面只有个retian的uitextfield,在viewB的viewDIdLoad里面初始化,代码如下。

    _nameJourney = [[UITextField alloc] initWithFrame:CGRectMake(25, 64+25, 270, 30)];
    _nameJourney.placeholder = @"旅程标题";
    _nameJourney.clearButtonMode = UITextFieldViewModeWhileEditing;
    _nameJourney.borderStyle = UITextBorderStyleRoundedRect;
    _nameJourney.delegate = self;
    _nameJourney.returnKeyType = UIReturnKeyDone;
    [_nameJourney becomeFirstResponder];
    [self.view addSubview:_nameJourney];

阅读 14.5k
3 个回答

如果是登录界面的话, 个人觉得把它放在一个单独的window里比较好, 登录验证通过后, 就可以把那个window释放掉了!

一般我做登录,都是用NavigationViewController push或present。
NavigationViewController里有一个栈,每次push都是VC入栈,pop会出栈。一个VC出栈后会被释放。
present后的dismiss也是一样,会被释放
如果你的VC在pop(或dismiss)后没有被释放,那应该是这个VC仍然有一个强引用指向他,这应该是编码不规范造成的。
建议你把处理登录VC的代码贴出来

之前做的时候有登录这个功能,当时的处理方法是在userDefault中存个是否登录标志位,程序启动的时候在AppDelegate中检测标志位,如果未登录,那程序的rootViewController就初始化为登录界面,如果已经登录了,那程序的rootViewController就初始化为其他的界面,这样就不用每次都初始化loginViewController了。刚做iOS,不太懂... 希望能对你有帮助。这种做法有什么弊端,也请各位大神指正...

推荐问题