2014-02-15 85 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

我是編程新手,我只做了幾個月。當我試圖學習東西時,我不需要這些令人沮喪的,令人沮喪的評論。 –