5

我在Xcode项目中的故事板文件中创建了多个场景,并且加载的第一个场景是屏幕中的用户登录。当UIButton的“登录”用户登录需要用户欢迎屏幕。我用故事板模式设置了故事板。我想让一个名为“admin”的用户成为一个受欢迎的管理员屏幕。我敢肯定它是只可能有一个对象相关联的一个SEGUE,即UIButton的在故事板,让我很为难,我怎么能完成登录走管理员管理员欢迎屏幕,并采取所有其他用户用户欢迎屏幕。我真的不想创建两个单独的登录按钮,所以这不是一个选项。一个UIButton两个场景只有一个segue,需要有条件代码

我遇到了一些类似问题的stackoverflow帖子,但所有的答案似乎有点复杂。请记住我是新来的Xcode,所以如果你在你的答案粘贴代码,请指定文件中的代码应该在(这将帮助我很多)。我会后的我是什么故事板看起来像到目前为止的图片,以帮助证明什么,我谈论的视觉图。

enter image description here

回答

6

如果我理解正确你的问题,这里有你需要做的步骤它的工作:

  1. WelcomeViewController - ,你必须从用户名/密码登录按钮,控制+拖动UIViewControllerWelcomeScreen,并从弹出菜单中选择Modal(通过从UIViewController拖动我的意思是,选择故事板中的UIViewController,从底部到目标视图控制器有一个圆形图标。将segue标识符命名为“UserSegue”

  2. 重复步骤1,但改为控制并将其拖至Admin屏幕。命名SEGUE标识为 “AdminSegue”

  3. 现在需要继承WelcomeViewController

  4. 实施-(IBAction)login:(id)sender

    - (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]; 
        } 
    } 
    
  5. 在故事板,挂钩登录按钮的方法在步骤4中。

+0

非常感谢您的及时回复,您是我一直在寻找的解决方案。 – Chris

1

这是正确的 - 你只能从按钮(或其他控件)一个外出SEGUE。

但是,您可以从视图控制器获取任意数量的传出段。与附加到按钮(或其他控件)的属性不同,当轻触控件时,不会自动调用视图控制器中的静态 - 您必须在代码中执行此操作,但在代码中执行操作可以灵活地根据无论你需要什么条件。

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

然后,创建一个连接到您的按钮的操作方法。在该方法的实现(这大概是在视图控制器包含按钮),则需要取其条件,试验,并调用[self performSegueWithIdentifier:@"mySegue"]执行SEGUE。

在我的answer to a similar question有更多的解释,如果有帮助。

相关问题