从另一个视图控制器中退出第一响应者
Posted
技术标签:
【中文标题】从另一个视图控制器中退出第一响应者【英文标题】:Resign First Responder from another View Controller 【发布时间】:2013-07-28 22:06:41 【问题描述】:我有一个奇怪的案例,我使用来自John Lluch 的出色 SWRevealViewController 来让 2 个侧边导航控制器(如 Facebook 应用程序)在 UIBarButtonItem 被触摸时向左和向右滑出。
但是 - 我需要前视图控制器确保在这些操作发生时让第一响应者辞职,但是这些条形按钮的相关操作发生在另一个视图控制器类中。
我需要:
-
将另一个操作与 UIBarButtonItem 相关联,我可以在需要退出第一响应者的视图中调用该操作或
在任一侧视图的 ViewDidAppear 或 SWRevealController 类中为主视图退出第一响应者
您可以从另一个视图控制器中为一个视图辞去第一响应者吗?
【问题讨论】:
【参考方案1】:you can do it using NSNotificationCenter as below.
//.m file:
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(LoadTableBasedOnCorner:) name:@"LoadTable" object:nil];
in which class you use above addObserver, you have to implement that method.
//.m file from where you want to send action, call method as below.
[[NSNotificationCenter defaultCenter] postNotificationName:@"LoadTable" object:nil];
【讨论】:
这就是我所做的!我希望有一个更好的答案,但这确实非常有效。我对 Objective-C(或者说老实说任何语言的内存管理)都不太了解,但它对我来说感觉像是一个内存密集型解决方案,因为它在每个类中都可读。尽管如此,它并没有减慢任何速度,而且我们在这个应用程序中使用了几乎 0 内存,所以不管怎样。以上是关于从另一个视图控制器中退出第一响应者的主要内容,如果未能解决你的问题,请参考以下文章