Ios InstanceViewController WithiIdentifier-故事板id已设置,但仍不工作

Ios InstanceViewController WithiIdentifier-故事板id已设置,但仍不工作,ios,objective-c,segue,Ios,Objective C,Segue,我必须以编程方式创建一个segue,但是当我单击按钮时,视图控制器不会更改为下一个,情节提要ID已设置并且仍然不工作。我是否错过了任何其他检查,以使这项工作 请参阅下面的代码: EntryViewController *entryController = [self.storyboard instantiateViewControllerWithIdentifier:@"go"]; [self.navigationController pushViewController:entryContro

我必须以编程方式创建一个segue,但是当我单击按钮时,视图控制器不会更改为下一个,情节提要ID已设置并且仍然不工作。我是否错过了任何其他检查,以使这项工作

请参阅下面的代码:

EntryViewController *entryController = [self.storyboard instantiateViewControllerWithIdentifier:@"go"];
[self.navigationController pushViewController:entryController animated:YES];
这快把我逼疯了。谢谢使用

 + (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil. 
所以试试这个

self.storyboard=[UIStoryboard storyboardWithName:@"Your_Story_Board_Name" bundle:[NSBundle mainBundle]];
EntryViewController *entryController = [self.storyboard instantiateViewControllerWithIdentifier:@"go"];
[self.navigationController pushViewController:entryController animated:YES];

无法设置视图控制器
情节提要
。它是只读的,在创建视图控制器时设置。相反,您需要从其他地方获取或加载故事板

您可以从AppDelegate的根视图控制器获取情节提要。或者使用名为:(NSString*)名为bundle:(NSBundle*)故事板bundle或nil的故事板

 UIStoryboard *    storyboardobj=[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

 EntryViewController *entryController = [storyboardobj instantiateViewControllerWithIdentifier:@"go"];
[self.navigationController pushViewController:entryController animated:YES];

在我的viewDidLoad中,我放置了一个名为goldStarOpen的按钮:

UIButton *btnTwo = [UIButton buttonWithType:UIButtonTypeCustom];
btnTwo.frame = CGRectMake(250, 20, 40, 40);
[btnTwo addTarget:self action:@selector(goldStarOpen) forControlEvents:UIControlEventTouchUpInside];
[btnTwo setImage:[UIImage imageNamed:@"GoldStar.png"] forState:UIControlStateNormal];
[self.view addSubview:btnTwo];
在goldStarOpen里面,我的代码和你的几乎一样

- (void)goldStarOpen
{
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:
                                @"MainStoryboard" bundle:[NSBundle mainBundle]];
    UIViewController *myController = [storyboard instantiateViewControllerWithIdentifier:@"GoldStar"];
    [self presentViewController:myController animated:YES completion:nil];
}
goldStarOpen激活情节提要中的ViewController

您可能需要设置试图加载的视图控制器的情节提要ID。它位于inspector中,就在将自定义类指定给视图控制器的下方

试试这个 情节提要选择UIViewController->Xcode->Editor->Emabed In->Navigation Controller

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"YourStoryboard"
                                                         bundle: nil];

YourViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier: @"YourViewController"];
[self.navigationController pushViewController:vc animated:YES];

今天遇到了这个问题,在右边的面板上清楚地设置了故事板ID,但我仍然收到警告说VC无法访问,并且没有设置标识符。修复了我取消选中“从目标继承模块”并运行项目的框后出现的问题


代码成功运行后,无论复选框是否选中,它现在似乎都可以工作,因此可能是Xcode错误。。。无论如何,希望这能有所帮助。

是设置了“self.storyboard”还是设置为零?@Wain可能设置为零,因为我还没有设置,我应该在哪里将故事板设置为self?我正在看另一个类似的示例,刚刚尝试了你的,但仍然没有运气!它不会移动到下一个视图控制器,并且您已检查序列图像板是否是通过调用“storyboardWithName:…”创建的?视图控制器是否为“go”标识符实例化?当前视图在导航控制器中?是的,我使用的情节提要是“主情节提要”“注意小m!唯一的一点是,我以编程方式创建视图,虽然在emulator中运行视图控制器时,视图控制器嵌入在导航控制器中,但顶部没有显示导航栏,你认为这是一个问题吗?它没有崩溃,因此它能够找到故事板标识符,但是它没有移动。你能显示如何创建原始控制器的代码,并且在调试时导航控制器为零吗?我用这个答案在AppDelegate中实例化了soryboard。谢谢我也遇到了同样的问题,我通过在inspector中为类设置正确的模块(参见上面的屏幕截图)解决了这个问题。有人能回答这个问题吗?