2011-01-13 7 views
0

こんにちは私はiPhoneアプリの開発に新しいです。私はタブバーベースのアプリケーションを持っています。タブの1つでは、カスタムテーブルビューコントローラを備えたカスタムナビゲーションビューコントローラがあります。カスタムテーブルビューコントローラの関数をスーパーコントローラのviewDidLoadメソッド(カスタムナビゲーションビューコントローラ)から呼び出すにはどうすればよいですか?Iphone:ビューコントローラでスーパービューコントローラから関数を呼び出す?

ありがとうございました

答えて

0

カスタムテーブルビューコントローラをどのようにインスタンス化していますか?それはNibか、プログラムで行われますか?

前者がカスタムナビゲーションビューコントローラからカスタムTVコントローラのインスタンスにIBOutletを使用する場合。

後者は、作成時にカスタムTVコントローラにivarハンドルを保持するだけです。 ctvcはいけないあなたがviewDidLoadメソッドからメソッドを使用したいときににdeallocのオーバライドに

-(void)dealloc { 
self.ctvc = nil; 
[super dealloc]; 
} 

を解放することを忘れ​​

あるself.ctvc = [[[MyCVTV alloc] initWithNibName:nil bundle:nil] autorelease];

のように

[ctvc doSomething:thing]

しかし、UINavigationControllerはサブクラス化のために設計されていません。 http://developer.apple.com/library/ios/#documentation/uikit/reference/UINavigationController_Class/Reference/Reference.html

あなたは私が全体で適切に私の質問を入れていなかったと思います

+0

あなたのオブジェクト構造を再考する必要があります。もう一度試してみましょう私はタブバーベースのアプリを持っています。私はIBからmainview.xibに5つのタブを設定しました。タブの1つはNavigation Controllerのタイプです。その中にはTable View Controllerがあります。ナビゲーションビューが表示されたときに、テレビコントローラーで定義した関数を呼び出したいと思います。私は、ナビゲーションコントローラがTVコントローラの前にロードされると推測しています。これはどうすればいいですか?申し訳ありませんが私は貧しい人々の英語については明確で残念ではない場合。 – Rupert

+0

できません。あなたがそれを使用することはできませんテレビのコントローラをインスタンス化するまで。ただし、View Controllerをインスタンス化して表示することはできません。 –

+0

実際はそうではありません。 TV Controllerのクラスメソッドを定義することができます。インスタンス化せずに使用することができます。 –

関連する問題