Ios 情节提要视图控制器未实例化?

Ios 情节提要视图控制器未实例化?,ios,iphone,objective-c,xcode,storyboard,Ios,Iphone,Objective C,Xcode,Storyboard,我正试图用这段代码在我的故事板中实例化一个新的视图控制器,但它什么也不做,并且停留在旧的故事板上 代码如下: (void)menuSelect:(id)sender { UIButton *button = (UIButton*) sender; switch (button.tag) { case 0: { HomeViewController *hc=[[UIStoryboard storyboardWithName:@"Main" bundle:nil] insta

我正试图用这段代码在我的故事板中实例化一个新的视图控制器,但它什么也不做,并且停留在旧的故事板上

代码如下:

(void)menuSelect:(id)sender {
UIButton *button = (UIButton*) sender;
switch (button.tag) {
    case 0: {
        HomeViewController *hc=[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"Home"];
        [self presentViewController:hc animated:YES completion:nil];

        break;
    }
情节提要文件名为Main.storyboard,viewController的id为Profile

下面是故事板的图像:


实例化情节提要不会导致显示任何视图控制器。您必须从另一个视图控制器调用presentViewController。

实例化情节提要不会导致显示任何视图控制器。您必须从另一个视图控制器调用presentViewController。

问题 当HomeViewController为配置文件时,您将作为HomeViewController的标识符传递回家。因此,您要告诉程序的是:获取名为main的故事板,用标识符home实例化HomeViewController

解决方案 将代码更改为:

问题 当HomeViewController为配置文件时,您将作为HomeViewController的标识符传递回家。因此,您要告诉程序的是:获取名为main的故事板,用标识符home实例化HomeViewController

解决方案 将代码更改为:


好的,谢谢,我是否需要做一些特殊的操作来删除上一个屏幕,它是推到顶部还是只是重新创建一个新视图,因为我想在必要时删除旧视图。@Lion789它不是替换显示它的ViewController,而是添加到堆栈中。您可以通过当前可见屏幕的presentingViewController属性访问presentingViewController。同样,您也可以通过presentedViewController属性通过以前的ViewController访问显示的ViewController。我如何清除堆栈以便创建新视图,因为我希望避免视图保留在内存中/堆栈中有重复的控制器。好的,谢谢,我是否需要做一些特殊的操作来删除上一个屏幕,它是推到顶部还是只是重新创建一个新视图,因为我想在必要时删除旧视图。@Lion789它不是替换显示它的ViewController,而是添加到堆栈中。您可以通过当前可见屏幕的presentingViewController属性访问presentingViewController。同样,您也可以通过presentedViewController属性通过先前的ViewController访问显示的ViewController。我如何清除堆栈以便创建新视图,因为我希望避免视图保留在内存中/堆栈中存在重复的控制器。
HomeViewController *hc=[[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateViewControllerWithIdentifier:@"Profile"];
[self presentViewController:hc animated:YES completion:nil];