1

私はメインビュー(pagecontrol)にスクロールビューを読み込みました。私がしたいのは、スクロールビューに "Touchesbegan"メソッドを使用してダブルタップを探し、新しいViewControllerをnavstackにプッシュさせることです。 2番目の目標は不可能だと思われる。Navstackの上にない他のViewController内からViewControllerをプッシュしますか?

私は、分離されたscrollviewcontrollerをmainviewcontrollerのメソッド呼び出しをしています。そのメソッドは、新しいビューコントローラをスタックにプッシュする必要があります。それはdoesntですが、私はmainviewcontrollerクラスの中からこのメソッドを呼び出すと動作しますか? scrollviewcontrollerクラスの

:mainviewcontrollerクラスで

MainViewController *mvcC = [[MainViewController alloc] init]; 
[mvcC loadMapView]; 
[mvcC release]; 

-(void) loadMapView { 
[[self navigationController] pushViewController:mapViewController animated:YES]; 
NSLog(@"loadMapView method is called!"); 
} 

ありがとう!

答えて

1

新しいMainViewControllerを割り当てて、ナビゲーションスタックの既存のMainViewControllerではなく、-loadMapViewメッセージを送信しています。従って、その方法における[self navigationController]はゼロであり、-pushViewController:animated:方法はノーオペレーションではない。

+0

私は理解しましたが、実際にアクティブなビューコントローラでメソッドを呼び出す方法を新しく割り当てずに知っていますか?クラスメソッドはこの種のアクションのためのクラスメソッドだと思っていましたが、クラスメソッドはviewcontrollerのようなローカルインスタンス変数を呼び出してスタックにプッシュすることはできません。 – BTZ

+0

この回答には問題の解決方法の例は含まれていませんが、問題の原因が明確に示されていることを嬉しく思っています。 @BTZ、これを解決する方法を今まで考え出しましたか?私はビューコントローラ内のviewcontrollerから実行しています。自分自身でビューをプッシュしたいが、含まれているviewcontroller内では動作していない。スーパーを使用しても動作しませんでした。 – Danny

+0

'ScrollViewController'から' [mvcC loadMapView] 'を呼び出すのではなく、' [self.navigationController pushViewController:mvcC animated:YES] 'を呼び出すだけです。 – hatfinch

関連する問題