我有一个原始视图控制器,带有四个目标视图控制器。我希望能够使用导航控制器推送 segue到原始目标视图控制器的 ALL 。我试过......
- (IBAction)notificationsButtonPushed:(id)sender {
NotificationsViewController *notifications = [[NotificationsViewController alloc]init];
[self.navigationController pushViewController:notifications animated:YES];
}
- (IBAction)messagesButtonPushed:(id)sender {
MessagesViewController *messages = [[MessagesViewController alloc] init];
[self.navigationController pushViewController:messages animated:YES];
}
- (IBAction)settingsButtonPushed:(id)sender {
if (canMessage) {
SettingsViewController *settings = [[SettingsViewController alloc]init];
[self.navigationController pushViewController:settings animated:YES];
}
else {
NSLog(@"Can't Message");
}
}
- (IBAction)previewButtonPushed:(id)sender {
PreviewViewController *preview = [[PreviewViewController alloc]init];
[self.navigationController pushViewController:preview animated:YES];
}
这只是给了我一个没有我的UI组件的空视图控制器。
注意:我也累了" initWithNidName:"并传入每个目标视图控制器的storyboardID,它给了我错误:
'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/B7E025E5-D7D2-4FFD-B49C-E10DF5E94C44/LifePoints.app> (loaded)' with name 'preview'
我也尝试过......(将故事板segue设置为&#34; Push&#34;)
- (IBAction)notificationsButtonPushed:(id)sender {
[self performSegueWithIdentifier:@"notifications" sender:self];
}
- (IBAction)messagesButtonPushed:(id)sender {
if (canMessage) {
[self performSegueWithIdentifier:@"messages" sender:self];
}
else {
NSLog(@"Can't Message");
}
}
- (IBAction)settingsButtonPushed:(id)sender {
[self performSegueWithIdentifier:@"settings" sender:self];
}
- (IBAction)previewButtonPushed:(id)sender {
[self performSegueWithIdentifier:@"preview" sender:self];
}
虽然这确实将目标视图控制器推送到具有适当segue类型的屏幕上,但它不会转到正确的目标视图控制器。它似乎只是偏离最后一个故事板segue。
是否有人知道如何正确应用此功能并使其表现为我正在寻找的形式?
修改
重要的是要注意我正在检查条件是否符合&#34; messagesButtonPushed&#34;方法。我正在检查是否允许用户发送消息,如果是,则切换到VC。
答案 0 :(得分:1)
您不需要任何代码来实现基本segues。
在故事板中,确保原始视图控制器嵌入在导航控制器中(选择原始视图并选择编辑 - >嵌入 - >导航控制器)。
然后,您可以简单地控制从四个按钮中的每个按钮拖动到相应的目标视图,选择“推”作为segue类型。然后,您可以单击两个视图之间的segue图标,为每个segue提供一个标识符。
您可以删除您的IBAction方法以及链接到它们的按钮上的任何操作。
我建议您完成Storyboard Tutorial以了解故事板和分段的工作原理。
如果您确实想以编程方式执行segue,则可以控制从视图底部的黄色视图控制器图标拖动到目标。然后,您可以根据您的第二个代码使用performSegueWithIdentifier
调用segue - 在您的情况下,您可以有两个不同的segue并触发商店segue或另一个根据购买状态