2012-04-02 51 views
0

現在、Xcode 4.2を使用していて、2つのビューコントローラ(1と2)があります。私はviewcontroller1にいくつかのテキストフィールドを用意しておいてから、ユーザーが「次へ」ボタンをクリックしてからviewcontroller2に行くことができます。ユーザーがすべてのテキストフィールドを入力していない場合、ポップアップという警告ダイアログが表示されます。テキストフィールドが正しい場合にのみ新しいビューコントローラにプッシュ

テキストフィールドが空の場合、私のalertdialogがポップアップを除き、私は、正常に動作ボタンのクリックをセグエするストーリーボードを使用しているが、ビューコントローラは、まだ私はそれがそのようにするにはどうすればよい数2

に変更if/elseステートメントが満たされている場合にのみ、次のボタンは次のビューコントローラーに移動します。

私は、ナビゲーションコントローラを使ってビューコントローラを制御しています。

私がもし/ 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; 
} 

Voila!

+0

ありがとうございますが、私は、次のビューコントローラに行くようにビューコントローラを取得するコードを取得することはできませんので、それが役立つかどうかはわかりません。なぜ、上のコードは、新しいコントローラを開くために働かないのですか? – spudsta

+0

私が実際にやっていることは、コードにエラーがあると判断したリターンを追加することだけです。そうすれば、すべてがチェックアウトされても、新しいビューを初期化して提示するところまで進んでください。それを提示するコードに関しては、アニメーションを提示しようとしているのではなく、アニメーションを決して指定しない以外は、動作しないようにすることはできません。本当に問題にならないはずのもの以外に、私は間違ったことは何も見ません。 – David

+0

ナビゲーションコントローラと他のすべての 'プッシュ'がストーリーボードを介して行われていて、次にこの1つのviewcontrollerだけでコードを実行しようとしている場合に問題がありますか?ストーリーボードで通常行われる.hまたは.mファイルでインポートまたは宣言する必要があるものはありますか? – spudsta

関連する問題