我只有两个视图控制器,它们都有一个表视图。然后我有一个显示信息的视图控制器。当用户单击任一表视图上的行时,它将转移到信息视图控制器。
当用户在信息视图控制器上时,我需要一个返回原始状态的后退按钮(可以是两个视图控制器中的一个,其上有一个表视图)。
我已经考虑过使用segues返回到特定的表视图控制器,但是当我这样做时,表视图是空白的(因为我不想将信息传递回表视图视图控制器)。
我创造了这个:
- (IBAction)whereto:(id)sender
{
if(self.goback == @"a")
{
NSLog(@"%@", self.goback);
// go back to RemainderDealViewController
ReminderDealsViewController *newView = [self.storyboard instantiateViewControllerWithIdentifier:@"ReminderDealsViewController"];
[self presentViewController:newView animated:YES completion:nil];
}
if (self.goback == @"b")
{
NSLog(@"%@", self.goback);
// go back to ViewController
当按下后退按钮并且a或b取决于原始表视图控制器(我想要返回的那个)时,Whereto功能运行。
现在[self presentViewController不起作用]如果我使用segue它确实有效,但是tableview没有按原样填充。
任何人都可以提供建议吗?
答案 0 :(得分:0)
对于UINavigationViewController
,只需使用它来呈现一个viewcontroller
[self.navigationController pushViewController:prod animated:YES];
返回上一个viewController使用:
[self.navigationController popViewControllerAnimated:YES];
要转到rootViewController使用:
[self.navigationController popToRootViewControllerAnimated:YES];
要转到使用的controlcontroller堆栈中的特定视图控制器:
[self.navigationController popToViewController:<#(UIViewController *)#> animated:<#(BOOL)#>];
希望这会有所帮助.. :)
答案 1 :(得分:0)
试试这个: -
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ReminderDealsViewController *objSec=[storyboard instantiateViewControllerWithIdentifier:@"ReminderDealsViewController"];
[self.navigationController pushViewController:objSec animated:YES];
答案 2 :(得分:0)
来呈现一个viewcontroller
[self.navigationController pushViewController:prod animated:YES];
回去你可以使用:
[self.navigationController popViewControllerAnimated:YES];
或root [self.navigationController popToRootViewControllerAnimated:YES];
或准确的控制器 //获取VIEWCONTROLLER
NSArray *controller =[self.navigationController viewControllers];
[self.navigationController popToViewController:controller animated:YES];