Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 是否可以在一个位置检测所有ViewDid调用?_Ios_Objective C - Fatal编程技术网

Ios 是否可以在一个位置检测所有ViewDid调用?

Ios 是否可以在一个位置检测所有ViewDid调用?,ios,objective-c,Ios,Objective C,每当我的iOS应用程序中的用户移动到新屏幕时,我想触发一些分析代码 是否有一种方法可以检测对viewdideappear的每次调用,或者我需要在每个ViewController中实现这一点 是的,很多分析供应商框架都提供这一功能。通常,它们是通过swizzling实现的,因此它们替换UIViewController实现来捕获分析,然后调用stock实现。由于所有视图控制器都应该调用super,因此它们的代码将被运行 你也可以为所有视图控制器创建一个超类,但这很难应用到大多数应用中。我用googl

每当我的iOS应用程序中的用户移动到新屏幕时,我想触发一些分析代码


是否有一种方法可以检测对
viewdideappear
的每次调用,或者我需要在每个
ViewController
中实现这一点

是的,很多分析供应商框架都提供这一功能。通常,它们是通过swizzling实现的,因此它们替换
UIViewController
实现来捕获分析,然后调用stock实现。由于所有视图控制器都应该调用
super
,因此它们的代码将被运行


你也可以为所有视图控制器创建一个超类,但这很难应用到大多数应用中。

我用google analytics做了一个类似的应用。当时,我不得不从
GAITrackedViewController
中对控制器进行子类化。差不多就是这样。我添加了
self.screenName=@“somescreenname”
on
viewdide出现
method只是为了知道用户在我的GA仪表板上的位置。
GA文档中对此进行了解释,因此不难找到。

如何使用自定义的
–viewdide:
方法创建
UIViewController
的子集?然后你可以从那个类继承你的所有视图控制器——这是OOP的奇迹,胡?席席我已经考虑过了,但是现有的代码非常混乱,所以我想在前进之前考虑所有的选项。