【问题标题】:Receiver has no segue with identifier execption接收者没有标识符异常的segue
【发布时间】:2013-08-19 16:03:32
【问题描述】:

我遇到了这个奇怪的问题,由于某种原因,我的 segue 无法正常工作。

我有两个 segue 设置,根据一个设置的状态确定它选择的 segue。其中一个像魅力一样工作,而另一个得到“接收者没有标识符”

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

// check if registered already
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"registered"] == YES) {
    // Registered

    // Give the logo some time to show before moving on
    [NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(splashLoadedRegistered:) userInfo:nil repeats:NO];
} else {
    // Register

    // Give the logo some time to show before moving on
    [NSTimer scheduledTimerWithTimeInterval:4.0 target:self selector:@selector(splashLoaded:) userInfo:nil repeats:NO];
}
}



-(void)splashLoaded:(id)sender
{
//This one works
[self performSegueWithIdentifier:@"registerSegue" sender:self];
}

-(void)splashLoadedRegistered:(id)sender
{
//This one does not work
[self performSegueWithIdentifier:@"registeredSegue" sender:self];
}

这是我的故事板的屏幕截图。

Screenshot

注意事项:

  1. 我已经检查了 segue 的拼写。

  2. 这是应用程序中唯一的故事板,我已检查以确保这是 info.plist 和项目摘要中的一个设置。

  3. 我已经重置了模拟器,并清理了项目。

  4. segue 来自 ViewController,而不是 View。

非常感谢您对此的任何帮助。

【问题讨论】:

  • 我看到您可以互换使用 segueseque(g 与 q)。如果您在实际标识符中也这样做,则会导致问题。
  • 你的程序崩溃了吗
  • @Scott,感谢您指出这一点,我更正了。它们在应用程序思想中被恰当地命名。所以这并没有解决问题。 @Abdullah 是的,它给了我没有标识符异常的序列
  • 赛格!这是一个G!不是一个Q! “Seg-way”而不是“Seek”。

标签: ios xcode storyboard


【解决方案1】:

我的问题没有答案。这个问题似乎是 xcode 中的一个简单错误。在模拟器中更改设备后,segue 工作正常。它甚至在将其更改回有问题的设备类型后仍然有效。

【讨论】:

  • 我刚刚在物理设备上遇到了这个问题,发现只需卸载应用程序然后再次从 Xcode 运行它就可以解决这个问题。
  • 出于好奇,您运行的是哪个版本的 xcode?在我发布原始帖子时,我正在运行 4.5。
  • 我运行的是最新的非测试版 Xcode 5,构建 5A3005。
  • 希望这对某人有所帮助。我遇到了同样的问题,发生的事情是我复制并粘贴了我正在连接 segues 的控制器。实际的控制器在它下面,实际上没有segues。所以我在故事板中有2个控制器,用于同一个类,就在彼此之上。
  • 我更改了模拟器设备类型并清理了项目,但错误仍然存​​在;只有在我删除模拟器中的应用程序并重新运行后,错误才会消失。
【解决方案2】:

根据original poster's own answer,我重置了模拟器的“内容和设置”。这解决了问题。

我了解 xCode 优化了将应用程序包复制到设备上,仅复制发生变化的内容。我猜这是出了问题,它没有将更改复制到受影响的情节提要。

【讨论】:

    【解决方案3】:

    我发现如果你在源代码编辑器中打开故事板文件你会看到segues被放置在错误的部分,它应该在视图控制器的连接部分。 Xcode 5 有时会将 segues 放在 XML 树中的错误位置。手动编辑树。

    【讨论】:

      【解决方案4】:

      尝试在 StoryBoard 中和在 ViewController 中手动执行重命名您的 segue。有时,当您删除具有相同名称的先前 segue 时会发生这种情况。或者您创建了两个具有相同名称的 segue,然后删除了其中一个。

      【讨论】:

        【解决方案5】:

        对我来说,我必须确保我的 segue 是正确的。确保情节提要编辑器中的所有箭头都以正确的方式流动!

        【讨论】:

          猜你喜欢
          • 2012-08-06
          • 1970-01-01
          • 1970-01-01
          • 2018-04-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多