2

我有第一个视图,即登录屏幕。用户登录后,有一个按钮可以将视图推送到我的第二个视图。我的问题是,当我按下推回第一个视图的按钮时,它会调用 viewDidLoad 方法并运行视图,就好像我刚刚构建了应用程序一样。我有根据登录用户设置的其他标签,所以我希望在第一个视图被推送之前保持我的状态。

这是我用来推送到第二个视图的方法:

-(IBAction) secondView
{
    _secondView = [[SecondViewController alloc]initWithNibName:nil bundle:nil];
    [self presentModalViewController:_secondView animated:YES];
    [_secondView release];
}

以及推回第一个视图的方法:

-(IBAction) back {
    _firstView = [[FirstViewController alloc]initWithNibName:nil bundle:nil];
    [self presentModalViewController:_firstView animated:YES];
    [_firstView release];
}

我没有使用导航控制器,所以有没有办法将我的第一个视图推回到我推到我的第二个视图时的样子?提前致谢。

4

4 回答 4

3

要返回到 firstViewController,而不是将其推入堆栈(然后是_firstView _secondView _firstView),弹出 secondViewController

-(IBAction) back {
    [self dismissModalViewControllerAnimated:YES];
}

您正在做的问题是,当您使用当前方法“返回”时,您正在alloc创建一个新的 firstViewController(并且init是这方面的线索)。实际上,您只想将 secondViewController 从 firstViewController 的顶部弹出,您可以使用上面的方法来完成。

于 2011-06-13T04:26:22.937 回答
3

您需要关闭第二个UIVIewController而不是将第一个显示为另一个模态视图。

您应该使用以下内容替换该back方法:

-(IBAction)back:{
    [[self parentViewController] dismissModalViewControllerAnimated:YES];
}

这将使您返回到原来的第一个视图,并且(可能)释放第二个视图UIViewController

希望这会有所帮助。

于 2011-06-13T04:27:25.323 回答
3

如果您要推回 FirstViewController,请在 back 方法中使用此代码

[self dismissModalViewControllerAnimated:YES];
于 2011-06-13T04:33:08.940 回答
0

当您返回时关闭您的 SecondViewController 而不是创建 FirstViewController 的实例并呈现它。

于 2011-06-13T04:28:31.383 回答