2014-02-15 56 views
-1

对于我的应用程序,我需要用户输入一个数字,所以为了防止他们不输入数字,我创建了一个if/else语句,如果他们不会向用户显示错误消息不填写该字段,并在应用程序的主视图中填入数字。唯一的问题是,每当它尝试运行代码来调出下一个屏幕时,我都会崩溃。有条件地切换UIViewController

- (IBAction)budgetButton:(id)sender 
{ 
    myBudget = [self.budgetTextField.text floatValue]; 
    NSLog(@"myBudget = %.2f", myBudget); 
    if (myBudget == 0) 
    { 
     self.whatsYourBudgetLabel.text = [NSString stringWithFormat:(@"You must enter a budget!")]; 
    } 
    else 
    { 
     ViewController * nextView = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"]; 
     self.view.window.rootViewController = nextView; 
    } 
} 
+0

这是不连贯的。 “我需要用户输入一个数字,所以为了防止这种情况发生”您试图阻止您需要发生的事情?你能否编辑更清楚地解释你的问题?如果您的应用程序崩溃,请包含任何错误消息。 –

+0

尝试用'[self presentViewController:nextView animated:NO completion:nil]替换'self.view.window.rootViewController = nextView;'' – GoGreen

回答

0

您移动到下一个视图的代码被搞乱了。 查看performSegueWithIdentifier:sender:方法。

你不应该改变你的窗口的根。放置一个UINavigationController到你的窗口中,放置你的整个视图层次结构,并使用默认的segue机制来导航。

+0

给出了一个镜头,它仍然与SIGABRT崩溃。 [self performSegueWithIdentifier:@“View Controller”sender:self]; –

+0

您的segue的标识符是否为“View Controller”? – JiaYow

+0

我是编程新手,我只做了几个月。当我试图学习东西时,我不需要这些令人沮丧的,令人沮丧的评论。 –