我正在开发一个小型iOS应用,并且在视图控制器的导航中遇到问题。 这是我的代码(我是从网上得到的):
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath: (NSIndexPath *)indexPath
{
DetailsViewController *page = [[DetailsViewController alloc] init];
CGRect theFrame = page.view.frame;
theFrame.origin = CGPointMake(self.view.frame.size.width, 0);
page.view.frame = theFrame;
theFrame.origin = CGPointMake(0,0);
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.2f];
page.view.frame = theFrame;
[UIView commitAnimations];
[self.view addSubview:page.view];
}
我可以通过它导航到新的视图控制器。这工作正常但我现在需要在点击按钮时回到原来的控制器。这是我被卡住的地方,我没有使用任何导航控制器,我是iOS新手。 如果你们中的任何一个人知道如何以更好的方式做到这一点,那么听到它会很棒!
答案 0 :(得分:1)
转到nextview控制器使用此代码..
ViewController * v=[[ViewController alloc]init];
[self.navigationController pushViewController:v animated:YES];
返回私有主视图控制器使用此代码
[self.navigationController popToRootViewControllerAnimated:YES];
答案 1 :(得分:0)
如果你想提供推送和流行动画,那么你必须使当前视图控制器成为导航控制器的根控制器。
然后在此之后::
<强> A_ViewController 强>
- (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath: (NSIndexPath *)indexPath
{
B_ViewContorller *page = [[DetailsViewController alloc] init];
[self.navigationController pushViewController:page animated:YES];
}
<强> B_ViewController 强> 到达B_ViewController后想要回到A_ViewController
如果您没有使用默认导航栏,请使用此选项
[self.navigationController popToRootViewControllerAnimated:YES];
使用默认导航栏的一个优点是它为您提供了默认的后退按钮。我建议使用默认导航栏。