2011-05-06 10 views
0

私はテキストビューを持っているビューコントローラを持っています。このビューコントローラのオブジェクトを別のクラスに作成しています。そのクラスでIBOutlet textViewのテキストを設定しています。 次に、このビューコントローラーオブジェクトをナビゲーションコントローラーにプッシュします。IBOutletがdidLoad外に設定されていない

テキストが設定されていません。デバッグして、テキストビューのオブジェクトが0x0を表示していることがわかりました。didLoadにテキストを設定すると、set.Further、最初にビューをプッシュしてから呼び出しましたテキストを変更するメソッドが0x0を表示します。

私が何か間違っていると誰にでも私に知らせることができますか?

LookUpReference *lookUp = [[LookUpReference alloc]init]; 
[self.navigationController pushViewController:lookUp animated:NO]; 
[lookUp loadViewWithResponse:responseString]; 

方法loadViewWithResponseは: -

-(void) loadViewWithResponse:(NSString *)responseString 
{ 
    txtViewDescription.text=responseString; 
} 

答えて

0

XIBファイルは、ビューIVARを参照することにより、遅延ロードされるので、あなたのtxtViewDescriptionは、それまでnullです。ビュー・コントローラにロードさせるためにビュー・メンバにアクセスしてください。

0

@DavidNeissはビューにアクセスする必要があると言いました。試してみてください:

self.view = self.view; // Causes the view to load

このフォームは警告が発生することはありません。

1

ViewControllerはビューを遅延ロードします。したがって、txtViewDescription.text = responseString;というプロパティを設定すると、実際にresponseStringに変数nilが割り当てられます。あなたのようなことをしたいのなら、そうすることができます。ただし、タイプNSStringで新しいプロパティを作成し、このインスタンス変数に値を割り当てます。 responseStringをtextviewに代入するのではなく、それをその変数に代入し、viewDidLoadまたは使用しているセレクタでその値を取得します。

関連する問題