Ios 如何通知导航控制器它应该从n层的子视图推送viewcontroller?

Ios 如何通知导航控制器它应该从n层的子视图推送viewcontroller?,ios,delegates,protocols,nsnotificationcenter,Ios,Delegates,Protocols,Nsnotificationcenter,我有一个观点,我想在不同的情况下重用。这是一个用户视图,当触摸该视图时,将使viewcontroller推送用户详细信息viewcontroller 所以基本上我有一个视图,它可以显示任意数量的超级视图,直到viewcontroller。我希望该视图能够通知当前显示的任何viewcontroller以推送用户详细信息视图 除了使用NSNotificationCenter之外,还有其他方法可以做到这一点吗?NSNotificationCenter是我的最佳选择吗?我试着加入一个协议/委托,但这不适

我有一个观点,我想在不同的情况下重用。这是一个用户视图,当触摸该视图时,将使viewcontroller推送用户详细信息viewcontroller

所以基本上我有一个视图,它可以显示任意数量的超级视图,直到viewcontroller。我希望该视图能够通知当前显示的任何viewcontroller以推送用户详细信息视图

除了使用
NSNotificationCenter
之外,还有其他方法可以做到这一点吗?
NSNotificationCenter
是我的最佳选择吗?我试着加入一个协议/委托,但这不适合我

谢谢

------------------------对评论的回应----------------

我希望它是动态的。这部分是我的问题。我将在我的代码中使用这个视图,当我进行更新/更改时,我不希望必须更改实际的用户视图才能使事情正常进行


例如,在以下层次结构中添加此用户视图:viewcontroller->tableview->tableviewcell->userview。但是我还想这样添加它:viewcontroller->userview。

我想我会将
UINavigationController
子类化,并在那里注册我的
NSNotification
,这样我就不必担心在我的应用程序中注册每个
UIViewController
。我将把这个答案留在这里一会儿,不检查它作为答案,看看它可能有什么副作用。

navigationController.topViewController
在这种情况下可能会有所帮助。或者,如果您的应用程序使用单个导航堆栈,则可以在appDelegate中处理此通知

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

我认为在这种情况下使用NSNotification是有意义的。根据MVC,处理触摸事件的UIView不需要了解它所在的视图控制器层次结构。通知处理该问题。

查看创建视图控制器层次结构的代码会有所帮助。