performSegueWithIdentifier:发件人不在设备上工作

时间:2013-02-19 09:42:27

标签: ios objective-c storyboard segue

我有一个具有ViewController DefaultViewController的故事板,它既不是UITabBarController也不是'UINavigationController`。它决定即将到来的控制器应该是注册屏幕还是主屏幕。

我有两个来自它的segue,一个指向UINavigationController' that does registration while other moves to 'UITabBarController这是默认的主屏幕。

DefaultViewController方法

中进行ViewDidAppear:次调用
NSString *theController = nil;
if ([AppState sharedAppState].currentUserState == Registered) {
    theController = @"HomeSegue";
} else {
    theController = @"RegSegue";
}

[self performSegueWithIdentifier:theController sender:self];

segue在iOS模拟器5.1.1和6.0上运行良好。但是,当我使用iOS 5.1.1或带有iOS 6.0的iPhone在iPhone上运行代码时,没有任何反应。该视图保留DefaultViewController视图。

修改 我创建了全新的项目并在那里工作得很好但是当我复制旧的故事板内容和类时,问题重新出现.. !!

**编辑2 ** 我删除了与UINavigationController关联的RootViewController并添加了一个带有标签的简单UIViewController,它工作正常。如果我将自定义RegistrationController添加为根控制器,则不会执行segue。

P.S。我的自定义RegistrationController在其中添加了另一个控制器作为childViewController。

1 个答案:

答案 0 :(得分:0)

奇怪......非常非常激动..但这就是我开始工作的方式。

属于navigationController的RegistrationController创建了一个RegInfoController的实例,它作为子视图和子控制器同时添加。

我只是覆盖了那个childController的awakeFromNib方法,它开始工作了。

要确认方案,我删除了该方法并停止了工作..