5

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

我有两个 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];
}

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

截屏

注意事项:

  1. 我检查了segue的拼写。

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

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

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

对此的任何帮助将不胜感激。

4

5 回答 5

10

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

于 2013-08-19T20:42:54.603 回答
1

根据原发帖人自己的回答,我重置了模拟器的“内容和设置”。这解决了这个问题。

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

于 2015-03-06T11:24:35.493 回答
0

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

于 2014-02-12T08:16:50.547 回答
0

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

于 2014-07-24T18:27:30.273 回答
0

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

于 2014-02-02T02:20:22.033 回答