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