修改 UIViewController 中 viewDidAppear 的行为
Modify behaviour of viewDidAppear in UIViewController
我有应用程序(来自 Apple 样本的 UICatalog)。我将它与一个名为 Lookback 的框架一起使用,该框架用于屏幕录制。
我的接口定义如下:
@interface AAPLSteppperViewController : UITableViewController
所以它直接是 UITableViewController 的子class。它实现了如下方法:
+ (NSString*)lookbackIdentifier {
return @"Profile Editor";
}
我想调查一下 lookbackIdentifier 是如何被调用的,看看类似的东西:
问题是:如何引入这样的行为,如 UITableViewController 是一个系统 class 而我无法在堆栈中看到编号为 1 和 2 的调用源?
当我调查框架文档时,他们建议总是这样实施
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
...
}
对我来说,它看起来像是 UIViewController 内部的变化 - 但如何实现类似的东西?
我猜它会包括一些 UIViewController 的使用,但是 - 怎么样?我无法想象如何在没有 subclasssing 的情况下覆盖它的单个方法。
我只能访问我的 AAPLSteppperViewController。
如果有人能在正确的方向上推动我,我将不胜感激
正如@dan 指出的那样 - 调配是正确的答案。我尝试了那里的说明: http://nshipster.com/method-swizzling/ 它给了我想要的行为。
感谢您的帮助:)
我有应用程序(来自 Apple 样本的 UICatalog)。我将它与一个名为 Lookback 的框架一起使用,该框架用于屏幕录制。
我的接口定义如下:
@interface AAPLSteppperViewController : UITableViewController
所以它直接是 UITableViewController 的子class。它实现了如下方法:
+ (NSString*)lookbackIdentifier {
return @"Profile Editor";
}
我想调查一下 lookbackIdentifier 是如何被调用的,看看类似的东西:
问题是:如何引入这样的行为,如 UITableViewController 是一个系统 class 而我无法在堆栈中看到编号为 1 和 2 的调用源?
当我调查框架文档时,他们建议总是这样实施
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
...
}
对我来说,它看起来像是 UIViewController 内部的变化 - 但如何实现类似的东西?
我猜它会包括一些 UIViewController 的使用,但是 - 怎么样?我无法想象如何在没有 subclasssing 的情况下覆盖它的单个方法。
我只能访问我的 AAPLSteppperViewController。
如果有人能在正确的方向上推动我,我将不胜感激
正如@dan 指出的那样 - 调配是正确的答案。我尝试了那里的说明: http://nshipster.com/method-swizzling/ 它给了我想要的行为。
感谢您的帮助:)