Iphone 从第二个视图返回第一个视图,第一个视图的值保持不变

Iphone 从第二个视图返回第一个视图,第一个视图的值保持不变,iphone,pushviewcontroller,Iphone,Pushviewcontroller,我有第一个视图,即登录屏幕。用户登录后,会有一个按钮将视图推到我的第二个视图。我的问题是,当我按下按钮返回到第一个视图时,它调用viewDidLoad方法并运行视图,就好像我刚刚构建了应用程序一样。我还有其他标签,这些标签是根据登录用户设置的,因此我希望在第一个视图被推送到保留之前,保持它的状态 这是我用来推送到第二视图的方法: -(IBAction) secondView { _secondView = [[SecondViewController alloc]initWithNibN

我有第一个视图,即登录屏幕。用户登录后,会有一个按钮将视图推到我的第二个视图。我的问题是,当我按下按钮返回到第一个视图时,它调用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];
}

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

若要返回firstViewController,而不是将其推到堆栈上(即
\u firstView\u secondView\u firstView
),请使用

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

您所做的问题是,当您使用当前方法“返回”时,正在创建一个新的firstViewController(
alloc
init
是这方面的线索)。实际上,您只需要从firstViewController的顶部弹出第二个ViewController,您可以使用上述方法进行操作。

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

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

-(IBAction)back:{
    [[self parentViewController] dismissModalViewControllerAnimated:YES];
}
这将使您返回第一个视图,并(可能)取消分配第二个
UIViewController


希望这会有所帮助。

当您返回时,请关闭第二个ViewController,而不是创建FirstViewController的实例并演示它。

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

[self dismissModalViewControllerAnimated:YES];