2012-04-19 6 views
9

キーボードがテキストビューで表示されます。ユーザーがナビゲーションバーの戻るボタンを押すと非表示にします。iosのUINavigationBarバックボタンを押した後にキーボードを非表示にする方法

-(void)viewWillDisappear:(BOOL)animated{ 

    [myTextView resignFirstResponder]; 
} 

と、この:

は、私はこれを試してみました

-(void)viewDidDisappear:(BOOL)animated{ 

    [myTextView resignFirstResponder]; 
} 

しかし、それは動作しません、私はこれをどのように行うことができますか?

編集:

私が見つかりました。ここに解決策:にButtonPressメソッドにこれを入れて

iPad keyboard will not dismiss if modal ViewController presentation style is UIModalPresentationFormSheet

+0

によって行わあなたも持つべきではない –

+0

されます最初の応答者自身を辞任する。ビューが画面から外れると自動的に消えてキーボードが消えます。この動作をテストするには、 "Master-Detail Application"テンプレートを使用してiPhone用の新しいプロジェクトを作成します。ストーリーボードを開き、詳細画面に移動します。 'UITextField'をビューに追加し、appを実行します。フィールドをタップするとキーボードが現れ、ナビゲーションバーの戻るボタンを押すと消えます。 – DBD

+0

trueですが、ボタンを押すと大文字のフォームシートにUINavigationControllerが表示され、別のビューで移動する別のボタンを押すと、textViewがプッシュされ、キーボードが表示され、戻ってきます前のviewControllerとkeybordはまだ存在します。 – Anthony

答えて

17

-

[self.view.window endEditing:YES]; 

編集 - これはまた、あなたがの内容を取得することができます「戻る」ボタンが押されたときにテキストが編集中

+0

これについては、デフォルトの左ナビゲーションバーボタンの項目を無効にする必要があります –

+0

私は知っています - かなりストレートフォワードtho – SomaMan

+0

それは私のために働く... – iSwaroop

2

上記の回答を組み合わせると戻るボタンのチェックは必ずIBoutletsが正しくバインドされており、viewDid/WillDisappearがのNSLog文を置くことによって呼び出されている作るこの

- (void)viewWillDisappear:(BOOL)animated{ 
if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { 
    // back button was pressed. We know this is true because self is no longer 
    // in the navigation stack. 
    [self.view.window endEditing:YES]; 
} 

[super viewWillDisappear:animated]; 

}

関連する問題