Receiver没有带标识符异常的segue

时间:2013-08-19 16:03:32

标签: ios xcode storyboard

我有这个奇怪的问题,由于某些原因我的segue无法正常工作。

我有两个segues设置,取决于一个设置的状态确定它选择的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。

  5. 非常感谢任何帮助。

5 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:1)

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

我理解xCode会优化将应用程序的捆绑包复制到设备上,只会复制更改的内容。我猜这个问题出了问题,并没有将更改复制到受影响的故事板。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

对我来说,我必须确保我的segue正确的方式。确保故事板编辑器中的所有箭头都以正确的方式流动!