0

ここでの私の最初の質問はとても穏やかです:)

私はnavigationControllerを使用してビューを切り替えようとしています。私は次のことを理解しました:このコードを使用して別のビューコントローラーに切り替えるMainViewコントローラーを入手しました:

UIButton *buttonPressed = (UIButton *)sender;

    switch (buttonPressed.tag) {
    case 1:
        viewController = catalogView;
        break;
    case 2: 
        viewController = locatorView;
        break;
    case 3:
        viewController = galleryView;
        break;
}
[[self navigationController] pushViewController:viewController animated:YES];

次に、これらのビューの1つで別のビューに切り替えてみます。

私は考えました:メインビューをインポートし、ここでビューを切り替えるためのメソッドを作成する必要があります。

例えば

- (IBAction)goToProductView {
    //UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Test" message:@"hier" delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil] autorelease];
    //[alert show];
    viewController = galleryView;
    [[self navigationController] pushViewController:viewController animated:YES];
}

そして、私はこの関数を次のようにビューコントローラ内から呼び出します。

myViewController *mainView = [[myViewController alloc] init];
[[self navigationController] popViewControllerAnimated:NO];
[mainView goToProductView];

mainViewの関数はここで呼び出されます(引用符を外すとアラートが表示されます)が、ビューは変更されません。

ここの誰もが理由を教えてくれますか、それとももっと良い解決策がありますか?

前もって感謝します

(ps。情報を見逃した場合は、お気軽にお問い合わせください。できるだけ早く提供します)

4

2 に答える 2

0

ビュー/ビューコントローラを呼び出すフローが正しくありません。あなたが望むものの正しいシナリオを説明することができれば、私はあなたに解決策を教えます。または、コードを投稿して理解を深めてください。

于 2010-09-14T11:07:07.760 に答える
0

私は自分のやり方の誤りを見つけました。

私は次のようにビューをネストしていました:

mainView-SecondView ThirdView

mainViewにSecondViewからThirdViewに移動するように要求します。

これの代わりに:

MainView-SecondView-ThirdView

次に、secondViewにthirdViewに移動するように要求します。

同じ問題でここにたどり着く他の人にとって、私はhttp://www.edumobile.org/iphone/iphone-programming-tutorials/navigationcontroller-application-in-iphone/が非常に役立つことに気づきました。

于 2010-09-14T11:39:50.190 に答える