Iphone 从继承的类调用方法
我有两个类别A和B。在类别A中,我使用:Iphone 从继承的类调用方法,iphone,ios,Iphone,Ios,我有两个类别A和B。在类别A中,我使用: @interface A : B 在B类中,我有一行代码: self.navigationItem.rightBarButtonItem = [UIBarButtonItem barItemWithImage:[UIImage imageNamed:@"Add-button-normal"] highlightedImage:[UIIma
@interface A : B
在B类中,我有一行代码:
self.navigationItem.rightBarButtonItem = [UIBarButtonItem barItemWithImage:[UIImage imageNamed:@"Add-button-normal"]
highlightedImage:[UIImage imageNamed:@"Add-button-active"]
target:self
action:@selector(showPopoverUI:)];
如何访问A类中的这些项目,我尝试了这一行代码,但不起作用:
self.navigationItem.rightBarButtonItem = [UIBarButtonItem barItemWithImage:[UIImage imageNamed:@"Add-button-normal"]
highlightedImage:[UIImage imageNamed:@"Add-button-active"]
target:self.parentViewController
action:@selector(showPopoverUI:)];
我得到了这个错误:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[B showPopoverUI:]: unrecognized selector sent to class 0x226308'
当您想要调用
super
类方法时,您需要调用super
您需要调用super-navigationItem…
或者
当您想要调用
super
类方法时,您需要调用super
您需要调用super-navigationItem…
或者
如果你是内在的,你应该能够使用self并调用这个方法,就像它是你自己的一样 尝试:
如果你是内在的,你应该能够使用self并调用这个方法,就像它是你自己的一样 尝试:
在第二个示例中,您的目标是parentViewController,而应继续以self为目标。在第二个示例中,您的目标是parentViewController,而应继续以self为目标。在这两个代码示例中,您的目标不同。试着在第二个例子中瞄准自我。谢谢Stefan!这是工作。请把你的答案贴出来,把它标记为正确。我把它作为一个答案加上去了,很高兴它起作用了!在这两个代码示例中,您的目标是不同的。试着在第二个例子中瞄准自我。谢谢Stefan!这是工作。请把你的答案贴出来,把它标记为正确。我把它作为一个答案加上去了,很高兴它起作用了!您调用self.navigation,我建议使用super.navigation或yuo需要装箱一个super实例来调用其导航。您调用self.navigation,我建议使用super.navigation或yuo需要装箱一个super实例来调用其导航。
self.navigationItem.rightBarButtonItem = [UIBarButtonItem barItemWithImage:[UIImage imageNamed:@"Add-button-normal"]
highlightedImage:[UIImage imageNamed:@"Add-button-active"]
target:self
action:@selector(showPopoverUI:)];
self.navigationItem.rightBarButtonItem = [UIBarButtonItem barItemWithImage:[UIImage imageNamed:@"Add-button-normal"] highlightedImage:[UIImage imageNamed:@"Add-button-active"]target:self action:@selector(showPopoverUI:)];