【问题标题】:Segue won't perform due to this error "Receiver (<ViewController: ) has no segue with identifier" but segue is identified由于此错误“Receiver (<ViewController: ) has no segue with identifier”,Segue 无法执行,但 segue 已识别
【发布时间】:2015-11-02 03:02:37
【问题描述】:

我一整天都遇到同样的错误,我知道这是说故事板中没有识别出segue,但确实如此。以下是我认为相关的代码: 1.IBAction 用于向 segue 发出信号的按钮。

-(IBAction)launchScanner:(id)sender{
    NSLog(@"launch Scanner pressed");
    [self performSegueWithIdentifier:@"launchScanner" sender:self];     
}
  1. 这是为 segue 准备的功能,我暂时将其留空,不确定是否需要在其中包含一些内容。

    -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    if([[segue identifier] isEqualToString:@"launchScanner"]){  
    
    }   
    }
    
  2. 我最初以编程方式制作了所有内容,这是我实例化导航控制器的方式(在 appdelegate.m 中):

    ViewController *myViewController = [[ViewController alloc] init];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:myViewController];
    _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    _window.rootViewController = navigationController;
    [_window makeKeyAndVisible]; 
    
  3. 这里还有我的故事板设置的图片和证明segue被识别的证据Image 1Image 2

【问题讨论】:

  • 如果您不是从情节提要创建视图控制器,那么它不会与场景关联,因此也不会与任何转场关联。
  • 另外,只是以模态方式实例化视图一直工作得很好,问题只是当我尝试使用导航控制器进行推送时。
  • 所以我应该从情节提要实例化初始视图控制器或目标视图控制器,还是两者都实例化?我会在哪里做呢?应用程序委托中的第一个,然后是为 segue 做准备的目标视图控制器?还是在 IBAction 方法本身?
  • 在我看来,如果你打算使用故事板,你不妨从故事板做所有事情。只需将导航控制器设置为您的初始场景并从 AppDelegate 中删除代码。
  • 如果没有更多信息,我无法为您提供帮助 - 您的故事板中的场景是空白的!

标签: ios objective-c iphone uiviewcontroller segue


【解决方案1】:

如果您想以编程方式实例化您的导航控制器,您需要从情节提要中获取对它的引用。如果您需要在加载初始 VC 之前在应用程序委托中执行某些功能,则可以使用它。

    UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle: nil];
    UINavigationController *initialNavVc = (UINavigationController *)[mainStoryboard instantiateInitialViewController];
    self.window.rootViewController = initialNavVc;

【讨论】:

    【解决方案2】:

    您的情节提要中有错误。 导航控制器应该是“初始视图控制器”。 请检查图片中的突出显示

    这里是纠正 Storyboard image的解决方案@

    【讨论】:

      猜你喜欢
      • 2014-11-14
      • 2016-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 1970-01-01
      • 2015-08-21
      相关资源
      最近更新 更多