presentViewController不工作,因为我想

问题描述:

我有我的presentViewController代码设置是这样的:presentViewController不工作,因为我想

ProductViewController *vc = [[ProductViewController alloc] init]; 
[self presentViewController:vc animated:YES completion:nil]; 

它确实提出了vc控制器,但我无法利用它什么,它就像一个冰冻屏幕。是因为它还有一个观点吗?或者我不应该使用alloc] init

ProductViewController是一个现有的视图控制器(它实际上是根视图控制器),所以基本上我只想让presentViewController回到根视图控制器。

编辑:

我有一个ShippingViewController用户在其中输入名称/运输细节。

然后他们点击显示PaymentViewController(其中有一个导航栏,所有其他视图控制器不)的“结帐”按钮。
PaymentViewController上,用户输入他们的信用卡信息并点击“支付”按钮。

如果支付成功,我希望ProductViewController(初始/根视图控制器)被呈现。目前,如果我只是拨打dismissViewController,它会显示ShippingViewController

+0

你有东西挖掘的......?你必须编码解雇视图控制器。 –

+1

使用alloc/init会创建一个'ProductViewController'的新实例,所以上面的代码会将您转发到新实例,而不是回到现有实例。要回去,你应该使用'dismissViewControllerAnimated:completion'而不是'presentViewController:animated:completion:' – pbasdf

+0

@pbasdf有道理,但我不想让它回到那个视图控制器。有没有一种方法可以让它解散,然后转到某个视图控制器而不是前一个? –

这似乎对我的问题的护理:

NSString *storyboardName = @"Main"; 
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil]; 
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"id"]; 
[self presentViewController:vc animated:YES completion:nil];