我有两个视图控制器UserListView
和UserProfileView
!
在UserListView
视图控制器中,我有一个切换到UserProfileView
的按钮,这里是代码。
UserListView.m - 点击操作
- (IBAction)SettingClick:(id)sender
{
UserList *UserProfile = [self.storyboard instantiateViewControllerWithIdentifier:@"UserProfileView"];
[self presentViewController:UserProfile animated:YES completion:nil];
}
代码工作正常,当用户切换到配置文件(UserProfileView)时,关闭按钮返回UserListView
,这里是代码。
UserProfileView.m - 关闭点击操作
- (IBAction)CloseClick:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
UserProfile *UseList = [self.storyboard instantiateViewControllerWithIdentifier:@"UserListView"];
[self presentViewController:UseList animated:YES completion:nil];
}
在此代码中,我将使用[self dismissViewControllerAnimated:YES completion:nil];
关闭UserProfileView
视图控制器以降低ram使用率并且它可以正常工作。
但是,我关闭UserProfileView
我想再次打开这个视图控制器,它不起作用,UserProfileView
不再显示?
我使用xcode 5并为ios 7构建应用程序,请提供帮助。
感谢您的时间。
答案 0 :(得分:2)
如果我理解正确,当您拨打SettingClick:
时,您的应用会显示UserList
。因此,当您解除其上方显示的视图控制器时,您应该返回UserList
而无需再次显示它。所以你可以试试:
- (IBAction)CloseClick:(id)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
除非您最初提交UserList
,否则这将有效。在这种情况下,UserList
将被顶级控制器解雇。在这种情况下,您可以在解雇UserList
后延迟第二次UserProfile
,并且它应该有效。
在后一种情况下,我建议您使用导航控制器,而不是简单地像您一样简单地展示您的控制器。如你所见,它并不是真的很简单,你会陷入任何形式的捕获。当您一次只显示一个控制器时,呈现控制器可以正常工作。另一方面,如果您实例化UINavigationController
,这将为您处理控制器的层次结构。
答案 1 :(得分:0)
使用此 -
- (IBAction)CloseClick:(id)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
当您点击与此操作相关联的按钮
时,这将返回到您之前的视图