首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIApplicationDelegate,但对于每个ViewController

UIApplicationDelegate,但对于每个ViewController
EN

Stack Overflow用户
提问于 2017-04-06 11:11:33
回答 3查看 310关注 0票数 2

每当显示一个新的视图控制器时,我都想得到通知,UIApplicationDelegate提供了这样一种方式,但是对于整个应用程序,而不是针对每个视图控制器。

每次出现新的视图控制器时,是否都会调用任何委托?

备注

我完全了解UIViewController内部的函数,但我询问的是与视图控制器本身分离的委托,类似于ApplicationDelegate

我的尝试

我搜索了很多,我脑海中唯一的解决方案是扩展ViewController,然后让我的视图控制器继承这个新的视图控制器,但是我真的更希望有一种方法来捕捉那些事件,而不改变我的视图控制器中的任何东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-06 11:16:17

有一个

代码语言:javascript
复制
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

方法在UINavigationControllerDelegate中。

迅捷版:

代码语言:javascript
复制
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool)

您可以将您的UIApplicationDelegate设置为UINavigationController的委托,并获得那里的所有事件。

票数 2
EN

Stack Overflow用户

发布于 2017-04-06 11:18:40

创建一个委托协议,将app委托设置为此协议委托的委托,然后在视图中调用控制器函数(viewDidLoadviewDidAppear等),调用您的委托函数。

票数 0
EN

Stack Overflow用户

发布于 2017-04-06 11:22:45

不,在您的应用程序中显示给定的视图控制器时,没有获得通知或委托回调的通用解决方案。

正如已经指出的,当您只使用一个UINavigationController时,您可以得到一个部分的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43253458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档