Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 一个UIButton两个场景只有一个segue,需要条件代码_Objective C_Ios_Xcode_Presentmodalviewcontroller_Uistoryboardsegue - Fatal编程技术网

Objective c 一个UIButton两个场景只有一个segue,需要条件代码

Objective c 一个UIButton两个场景只有一个segue,需要条件代码,objective-c,ios,xcode,presentmodalviewcontroller,uistoryboardsegue,Objective C,Ios,Xcode,Presentmodalviewcontroller,Uistoryboardsegue,在我的Xcode项目中,我在一个故事板文件中创建了几个场景,加载的第一个场景是用户登录屏幕。当用户登录UIButton时,登录会将用户带到欢迎屏幕。我在故事板中使用模态序列设置它。我想要一个名为admin的用户进入欢迎管理员屏幕。我非常确定,只有一个序列与一个对象关联,即故事板中的UIButton,所以我很难理解如何完成登录,将管理员带到管理员欢迎屏幕,并将所有其他用户带到用户欢迎屏幕。我真的不想创建两个单独的登录按钮,所以这不是一个选项 我在stackoverflow上看到了一些类似的问题,但

在我的Xcode项目中,我在一个故事板文件中创建了几个场景,加载的第一个场景是用户登录屏幕。当用户登录UIButton时,登录会将用户带到欢迎屏幕。我在故事板中使用模态序列设置它。我想要一个名为admin的用户进入欢迎管理员屏幕。我非常确定,只有一个序列与一个对象关联,即故事板中的UIButton,所以我很难理解如何完成登录,将管理员带到管理员欢迎屏幕,并将所有其他用户带到用户欢迎屏幕。我真的不想创建两个单独的登录按钮,所以这不是一个选项

我在stackoverflow上看到了一些类似的问题,但所有的答案似乎都有点复杂。请记住,我是Xcode新手,所以如果您在答案中粘贴代码,请指定代码应该放在哪个文件中,这将对我有很大帮助。我将发布一张到目前为止我的故事板的图片,以帮助演示我正在谈论的内容的视觉图表


没错-按钮或其他控件只能有一个传出序列

但是,您可以从视图控制器拥有任意数量的传出分段。与按钮或其他控件的附件不同,点击控件时不会自动调用视图控制器的分段-您必须在代码中执行此操作,但在代码中执行此操作可以根据需要灵活执行

要从视图控制器中进行分段,请从视图控制器图标下方的视图控制器图标(IB中的橙色圆圈)或从其在场景轮廓中的条目中进行控制拖动。创建segue后,给它一个唯一的标识符,例如mySegue

然后,创建一个连接到按钮的动作方法。在该方法的实现(可能在包含按钮的视图控制器中)中,测试您需要的任何条件,并调用[self-PerformsgueWithIdentifier:@mySegue]执行segue


如果有帮助的话,我的中还有更多的解释。

如果我正确理解了您的问题,以下是您需要采取的步骤以使其生效:

从WelcomeViewController–您有用户名/密码登录按钮,control+从UIViewController拖动到Welcome屏幕,并通过从UIViewController拖动从弹出菜单中选择模式。我的意思是,在故事板中选择UIViewController,底部有一个圆形图标,从该视图到目标视图控制器。将segue标识符命名为UserSegue

重复步骤1,但改为control+将其拖动到Admin屏幕。将segue标识符命名为AdminSegue

现在需要将WelcomeViewController子类化

实现-IBActionlogin:idsender

在故事板中,将登录按钮连接到步骤4中的方法


非常感谢您及时的回复,您的回复就是我一直在寻找的解决方案。
- (IBAction)login:(id)sender {

    // assuming you have hooked up the user name text field

    if ([self.usernameTextField.text isEqualToString:@"admin"]) {
        [self performSegueWithIdentifier:@"AdminSegue" sender:sender];
    }
    else {
        [self performSegueWithIdentifier:@"UserSegue" sender:sender];
    }
}