2009-07-08 10 views
1

は一般的に、私のイベント処理はのUIViewControllerで発生するので、私は次のコード行を使用:しかし、今、私のイベントハンドラはUIViewのである [self.navigationController pushViewController:viewController animated:YES];UIViewControllerをUIViewからUINavigationControllerにプッシュしますか?

を。 具体的には、私はので、私はのUIViewControllerのサブビューが述べているのUIViewから UINavigationControllerへのUIViewControllerを押してくださいどのように私のtouchesEndedデリゲート、内側から

- (void) touchesEnded:(NSSet*)touches withEvent:(UIEvent*)eventを使用しています。

答えて

2

ビューのviewControllerを参照できるように、ビューにデリゲートを作成できます。これは次のように行うことができる:あなたはあなたの中から、あなたの代理人にメッセージを送信できるようになります

[myCustomView setDelegate:self]; 

@interface MyCustomView : UIView 
{ 
    id delegate; 
} 

@property(nonatomic, assign) id delegate; 

は、その後、あなたのビューコントローラでは、あなたは、単にこのようなビューのデリゲートを設定しますカスタムビュー

-(void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event 
{ 
    [delegate customMessage]; 
} 
0

UIViewControllerへの参照をUIViewに追加する必要があります。その後、イベントハンドラで、他のコントローラを押すメッセージをUIViewControllerに送信します。また、イベントハンドラでプッシュを行うこともできますが、もう一方の方法はMVCアーキテクチャでより正確です。

関連する問題