【发布时间】:2014-08-20 23:18:54
【问题描述】:
我有一些类,我们称它们为 A、B 和 C,它们继承自 UIViewController 和一些 UIViewController 类别,其中包含一些必须对所有类通用的方法。
Category 的方法必须调用 ViewControllers 上的另一个方法,但是。并非所有方法都将在 VC 中实现(因为它们永远不会在该上下文中被调用)。
如果我在类别中编写方法定义,则会收到错误,该方法未声明,但它已在 VC 中声明或未声明,并且永远不会在该上下文中使用。
是否有任何想法如何覆盖它并在多个 ViewController 之间共享大部分代码(导航代码)?
- (void)homeButtonPressed {
NSLog(@"Home button pressed, ViewController");
}
- (void)changeFloorButtonPressed {
[self changeFloor];
NSLog(@"Change Floor button pressed, ViewController");
}
- (void)QRButtonPressed {
NSLog(@"QR button pressed, ViewController");
}
这里[self changeFloor];是方法,它只针对一个ViewController。
【问题讨论】:
-
将通用代码抽象到不同的类中
-
好的,但是,我怎样才能调用每个 VC 独有的方法?
-
你能展示一些示例代码吗?
-
@BryanChen 将代码示例添加到问题中
-
为什么你需要一个类别中的方法来调用另一个可能无法实现的方法?将第一个方法放入实现第二个的类中。
标签: ios objective-c uiviewcontroller objective-c-category