2

サブクラスViewControllerに作成したUIButtonがあり、それをMainViewControllerに追加します。

ここで、このボタンにターゲットメソッドを追加しました。このメソッドは、別のView Controllerをナビゲーションコントローラー(MainViewControllerにあるもの)にプッシュする必要があります。

ボタンを押したときにメソッドが呼び出されたことは知っていますが、ビューはナビゲーションコントローラーにプッシュされませんでした。

この図面をスキャンしました-これは図面です(コードの一部も追加しました):

質問デッサン

これは、ボタンで使用しているコードです :(別のViewControllerにあることを忘れないでください)。

- (void)buttonPressed:(UIButton *)sender
{
    Photo_ScreenGlobalView *photo = [[Photo_ScreenGlobalView alloc] init];
    [self.navigationController pushViewController:photo animated:YES];
}
4

2 に答える 2

2

通常、私はこれらの状況を委任で解決します。別のビューコントローラー(つまり、「サブ」ビューコントローラー)に従属しているが、ナビゲーションの変更などをトリガーする機能が必要な場合は、その「親」への弱いポインターが必要です。次に、親VCは、子が使用するコールバックを使用して適切な名前のプロトコルを実装する必要があります。これらのものの名前は、andなどの一般的なものにすることも、@property navigationDelegateandなどrequestNavigationToViewController:のより意味的なものにすることもできます。@property userFormDelegateuserFormDoneButtonPressed:

一般的に、下位のビューコントローラは、親のレベルでナビゲーションを直接変更できないようにする必要があります。しかし、これらのようなより緩く結合されたインターフェースを介してそれをトリガーすることができます。

于 2012-06-20T23:02:05.233 に答える
-3

私は実際にどのようにそれをしたかを皆さんに知らせるために戻ってきました。多くのグーグルをした後、DELEGATEを作成し、デリゲート と協力して私のすべての問題を解決する方法について、この素晴らしくてクイックなガイドを見つけました。ヘルプが必要な場合は、遠慮なくPMを送ってください。

これはガイドです:http: //css.dzone.com/articles/do-not-publishcreating-your

于 2012-06-26T23:50:05.647 に答える