2012-04-02 61 views
0

當前使用Xcode 4.2,並且我有兩個視圖控制器(1和2)。我在viewcontroller1中有許多文本區域,需要在用戶點擊「下一步」按鈕之前填寫,然後才能進入viewcontroller2。如果用戶未填寫所有文本字段,則會彈出警告對話框。僅當文本字段正確時才推送到新視圖控制器

我已經使用了故事板Segue公司的按鈕,點擊它工作正常,但如果文本框爲空,我alertdialog彈出,但是視圖控制器仍然更改爲數字2。

我如何讓這個只有在符合if/else語句的情況下,下一個按鈕纔會轉到下一個視圖控制器。

我正在使用導航控制器來控制視圖控制器。

我試圖把下面的代碼放到if/else語句,但是它沒有工作:

UIViewController *secondViewController = [[SecondViewControllerClass alloc] initWithNibName:@"<name of xib>" bundle:nil]; 
[self presentModalViewController:secondViewController animated:YES]; 

現在有幾件事情我不確定試圖找出如何使用這個時方法。我是否需要在firstviewcontroller.m的頂部導入SecondViewController.m?

回答

0

NSString有一個有用的屬性,稱爲length,如果文本字段不包含文本,它將返回nil。如果您需要檢查,請致電:

if (!myTextField.text.length) { 
    //no text in the box 
} 
0

很簡單,因爲你已經設置的警告框彈出,如果事情是錯的文本框輸入,確認提示框顯示/初始化代碼是前改變視圖並執行此操作的代碼:

if(//something is wrong with the textbox input) 
{ 
    UIAlertView* alert = [[UIAlertView alloc] initWith... 
    [alert show]; 

    //Add a return! If the method is not IBAction or void, just return nil 
    return; 
} 

瞧!

+0

謝謝,但我不知道是否有幫助,因爲我不能讓代碼讓視圖控制器去下一個視圖控制器。爲什麼上面的代碼不能使新控制器打開? – spudsta 2012-04-02 04:34:40

+0

我真正要說的是在代碼中添加一個返回值,以確定是否有錯誤。這樣,如果所有內容都檢查完畢,它仍應該使其初始化新視圖並呈現它。至於代表它的代碼,我沒有看到任何可能導致它無法工作的東西,除非您試圖用動畫呈現它,但是您從不指定動畫。除了那些真的不應該成爲問題的東西,我沒有看到任何錯誤。 – David 2012-04-02 22:10:01

+0

如果導航控制器和所有其他「推送」是通過故事板完成的,然後我試圖通過僅使用這一個視圖控制器的代碼來完成,那麼是否存在問題?我需要在.h或.m文件中導入或聲明通常由故事板完成的任何內容嗎? – spudsta 2012-04-04 04:58:44

相關問題