0

さまざまな状況で再利用したいビューがあります。これは、タッチするとビューコントローラーがユーザー詳細ビューコントローラーをプッシュするユーザービューです。

したがって、基本的に、ビューコントローラーまで任意の数のスーパービューを表示できるビューがあります。そのビューが、現在表示されているビューコントローラーに通知して、ユーザーの詳細ビューをプッシュできるようにしたいと考えています。

これを行う以外に方法はありNSNotificationCenterますか?NSNotificationCenter私の最良の選択肢ですか?プロトコル/デリゲートを入れようとしましたが、うまくいきません。

ありがとう!

------------------------コメントへのお返事----------------

私はそれをダイナミックにしたいと思います。それは部分的に私の問題です。コード全体でこのビューを使用し、更新/変更を行うときに、実際のユーザービューを変更して機能させる必要はありません

例として、viewcontroller->tableview->tableviewcell->userview という階層にこのユーザー ビューを追加します。しかし、次のようにも追加したいと思います: viewcontroller->userview.

4

2 に答える 2

1

navigationController.topViewControllerこの場合に役立つ場合があります。または、アプリが単一のナビゲーション スタックを使用している場合は、appDelegate でこの通知を処理できます。

@interface AppDelegate
@property (nonatomic, strong) UINavigationController *nav;
...
[nav pushViewController:userVC animated:YES];

この場合、NSNotification を使用するのは理にかなっていると思います。MVC によると、タッチ イベントを処理する UIView は、それが存在するビュー コントローラー階層について多くを知る必要はありません。通知はその問題を処理します。

于 2013-08-29T05:31:01.553 に答える
0

私は a をサブクラス化UINavigationControllerしてそこに登録することを考えています。そうすれば、アプリNSNotificationでそれぞれに登録することを心配する必要はありません。UIViewControllerこれがどのような副作用をもたらす可能性があるかを確認するための答えとしてチェックせずに、この答えをここに少し残しておきます。

于 2013-08-29T05:11:00.007 に答える