1

持っている2つのViewController間で情報を渡す必要があります。以前は、2番目のビューの.hを最初のビューのコードにインポートし、最初のビューにprepareForSegueを実装して、そこで2番目のビューの値を設定することでこれを実行していました。ただし、現在、私の2つのビューコントローラーはナビゲーションコントローラーに含まれているため、ルートビューコントローラーへの遷移に関連付けられたセグエはありません(で行われているため[self.navigationController popToRootViewControllerAnimated:YES])。

UINavigationController popで使用できるprepareForSegueに似たメソッドはありますか?または、ルートビューに情報を送り返すために、デリゲートまたはNSNotificationsのいずれかを設定する必要がありますか?

4

2 に答える 2

0

pushセグエは、ビューコントローラがにあるときに、あるビューコントローラと次のビューコントローラの間を移行するために使用されますUINavigationController。StoryBoardで、あるビューから次のビューにドラッグし、セグエタイプとして選択pushして、セグエの識別子を設定します。次に、通常どおり宛先ViewControllerをセットアップできます。

情報を返すには、プッシュされたView Controllerに誰が呼び出したかに関する詳細情報がないため、デリゲートを設定する必要があります。

于 2012-09-24T13:49:13.383 に答える
0

あなたはあなた自身を実装しようとすることができます

@interface MyUINavigationController : UINavigationController  <UINavigationBarDelegate>

次に、以下を実装します。

- (void)navigationBar:(UINavigationBar *)navigationBar didPopItem:(UINavigationItem *)item

-(BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item

次に、変数をUINavigationBarに格納し、次を呼び出して必要に応じて使用できます。

MyNavigationController *navi =self.navigationController;
navi.variable = myvariable;
于 2015-02-16T23:27:17.647 に答える