performSegueWithIdentifier:导致应用程序崩溃

dig*_*tal 1 objective-c ios segue

我有一个在用户输入电子邮件信息后按下的按钮。我有一个警报视图,当没有输入电子邮件时会显示该视图,但如果有,我希望按钮转到另一个视图控制器。

以下代码导致我的应用程序崩溃。我不知道为什么。请帮忙。

(注意:我尝试过“sender:self]”、“sender:nil]”和“sender:sender]”,它们都使我的应用程序崩溃。)

- (IBAction)nextButtonPushed:(id)sender {

    if ([self.emailTextField.text  isEqual: @""]) {

        emailAlertView = [[UIAlertView alloc] initWithTitle:@"Missing Email" message:@"A destination email is required to send." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
        [emailAlertView show];
        self.nextButton.enabled = NO;
    }

    else {

        eString = self.eTextField.text;
        hString = self.hField.text;
        emailAddress = self.emailTextField.text;

        [userDefaults setObject:eString forKey:@"e"];

        [userDefaults setObject:hString forKey:@"h"];

        [userDefaults setObject:emailAddress forKey:@"email"];

        [self performSegueWithIdentifier:@"next" sender:self];
    }

}
Run Code Online (Sandbox Code Playgroud)

mat*_*att 5

三种可能性非常大:

  • 也许故事板真的没有从 FirstViewController 场景中出现的名为“next”的segue。小心:空格和大写以及诸如此类的事情。

  • 也许故事板有一个名为“next”的segue,但它来自不同的场景(不同的视图控制器)。

  • 也许self您的代码中由 表示的 FirstViewController 实例与故事板中的 FirstViewController 实例不同,即它可能以其他方式存在,而不是通过故事板的实例化。您甚至可能在情节提要中有两个 FirstViewController 对象,而 segue 来自另一个。