从一个ViewController移动到另一个

时间:2014-04-07 17:06:37

标签: ios objective-c uiviewcontroller segue

我的视图控制器中有一个按钮,一旦点击,我需要将用户发送到下一个视图控制器,但它无法正常工作。我将ctrl从我的按钮拖动到我想要的控制器,连接是作为UIButton选择touchUpInside。我也命名了segue,但仍然没有。按钮本身甚至没有识别出触摸已经发生并且没有将我发送到任何地方。这是我的主视图控制器下面的一些代码:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    JDTHMainMenu *theMenu = [[JDTHMainMenu alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:theMenu];

}

- (IBAction)matchViewControllerButton:(UIButton *)sender
{
    UIButton *matchScreenButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [matchScreenButton addTarget:self action:@selector(goToMatchView:sender:) forControlEvents:UIControlEventTouchDown];
    [matchScreenButton setUserInteractionEnabled:YES];
    NSLog(@"Open Match View");


}
- (void)goToMatchView:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"pushToMatchView"]) {
        JDTHMatchScreen *vc2 = (JDTHMatchScreen *)segue.destinationViewController;
        vc2.name = self.textField.text;
    }
}

我已将此视图控制器嵌入到navcontroller中,这是根控制器。我读到某个地方,也许我需要在我的appdelegate上添加一些东西,但没有什么是清楚的。我将发布任何被认为重要的代码,我仍处于学习的早期阶段,因此我不确定哪些内容是相关的。

1 个答案:

答案 0 :(得分:5)

您没有推送/呈现视图控制器,您只是为v2.name分配值。

您必须触发segue以从按钮推送/显示第二个视图控制器:

- (void)goToMatchViewController
{
    [self performSegueWithIdentifier:@"YOUR_SEGUE_IDENTIFIER" sender:self];
}

此代码可以在prepareForSegue:中用于为第二个VC分配var'值。检查文档以了解更多信息。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"pushToMatchView"]) {
        JDTHMatchScreen *vc2 = (JDTHMatchScreen *)segue.destinationViewController;
        vc2.name = self.textField.text;
    }
}

prepareForSegue, apple's doc