0

我有一个情节提要,它的 ViewControllerDefaultViewController既不是UITabBarController也不是“UINavigationController”。它决定即将到来的控制器应该是注册屏幕还是主屏幕。

我有两个源自它的 segues,一个指向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 Simulator 5.1.1 和 6.0 上表现良好。但是,当我在装有 iOS 5.1.1 的 iPhone 或装有 iOS 6.0 的 iPhone 上运行代码时,什么也没有发生。该视图与DefaultViewControllers 视图保持一致。

编辑 我创建了全新的项目并且在那里工作正常但是当我复制旧的故事板内容和类时,问题重新出现.. !!

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

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

4

1 回答 1

0

奇怪..非常非常奇怪..但这就是我让它工作的方式。

RegistrationController是 navigationController 的一部分,创建了一个实例,RegInfoController作为它的子视图和子控制器添加。

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

为了确认这种情况,我删除了该方法并且它停止了工作..

于 2013-02-19T12:22:03.247 回答