1

我想要一个主视图控制器来检查用户是否已经登录。如果是这样,它会转到选项卡视图控制器。如果没有,它会转到处理登录的登录视图控制器,然后转到选项卡视图控制器。

为了测试 a 功能的 segue 方面,我创建了一个单独的项目。我创建了 3 个视图控制器 - UIViewController 的所有子类。其中一个是主视图控制器,另外两个是简单的视图控制器,条件转场应该发生在这些控制器上。

我阅读了关于在线程中创建“无触发”segue如何在情节提要中应用基于条件的自定义 segue

如何创建两个无触发的 segue,以便我在运行时手动选择仅执行两个中的一个,具体取决于用户是否登录?或者是否有不同的方法来实现这种相当常见的场景?

4

2 回答 2

1

如何创建两个无触发的 segue,以便我在运行时手动选择仅执行两个中的一个,具体取决于用户是否登录?

  • 创建第一个通往登录屏幕的无触发segue;给它一个标识符,比如说,needLogin
  • 创建第二个无触发的 segue 导致选项卡视图;给它一个标识符,比如说,whenLoggedIn
  • 在主视图控制器中定义一个动作,并将此代码放入其关联的方法中:


// This is attached to the button on the main screen
-(void)onCheckLogin {
    if (userIsLoggedIn) {
        [self performSegueWithIdentifier:@"whenLoggedIn" sender:self];
    } else {
        [self performSegueWithIdentifier:@"needLogin" sender:self];
    }
}
于 2013-06-27T16:28:16.493 回答
0

我假设您知道如何检查是否已登录或已注销。
试试这个:

if (loggedIn) {
    [self performSegueWithIdentifier:@"GoToViewController1" sender:self];
} else if (loggeOut) {
    // Segue to Login viewController 
    [self performSegueWithIdentifier:@"GoToLoginViewController" sender:self];
}

注意:在 stoyboard 中,您必须仅从 viewController 创建 segue,而不是从 UIButton 或任何其他可能进行 segue 的对象。

于 2013-06-27T16:28:59.130 回答