在android中,在活动之间切换相当简单
你打电话给
Intent intent = new Intent(this,NextActivity.class); <- define the next activity
startActivity(intent); <- start the next activity
finish(); < -get rid of the current activity现在在iOS中,我知道如何做到这一点:
UIViewController *nextviewcontroller = [[UIViewController alloc]initWithNibName:@"nextvc" bundle:nil];
[self presentViewcontroller:nextviewcontroller animated:YES completion:nil];如何摆脱当前的视图控制器?所以currentviewcontroller在呈现nextviewcontroller之后就会死掉?
self dismissViewController:是的;似乎没有起到作用
即使不调用[self dismissViewController:YES];,也会调用生命周期方法viewWillDisappear和viewDidDisappear
我希望从memory和视图控制器堆栈中删除"currentviewcontroller“,这样单击"nextviewcontroller”中的"back“将转到当前视图控制器之前的某个第三个视图控制器。
发布于 2014-04-10 17:10:50
在iOS中则不同,因为没有活动的概念,一切都更专注于应用程序本身(在安卓系统中,你可以混合来自不同应用程序的活动)。因此,没有“视图控制器堆栈”的概念。最相似的概念是导航控制器的“导航堆栈”,您实际上将新的视图控制器推入和弹出到某种线性导航中。系统会自动创建导航栏,并使用后退按钮填充导航栏。
presentViewController将在当前视图控制器的基础上以模态方式显示您的视图控制器,但您不能颠覆呈现的视图控制器,因为它持有并包含(“定义上下文”)新的视图控制器。
如果您为导航层次结构使用导航控制器(我不知道您是否可以),您可以覆盖back按钮,并使用类似于
UIViewController * prev = self.navigationController.viewControllers[self.navigationController.viewControllers.count -2 ]
[self.navigationController popToViewController:prev animated:YES]使用模式视图控制器,您可以尝试类似(我还没有尝试过,但它可能会起作用)
[self.presentingViewController.navigationController popViewControllerAnimated:YES]您应该将这些代码之一写入到close按钮的目标操作中。
https://stackoverflow.com/questions/22983353
复制相似问题