我有一个NSObject形式的自定义类(Packages)。我有很多这个对象的实例。在初始化每个实例时,我从我的UIViewController名称ViewController传递self。
在这些包的代码中,我想从ViewController调用一个方法。
-(void)toThisView:(UIView *)someView
{
[imagesToRender addObject:someView];
[self.mainImageView addSubview:someView];
}
和Packages.m
我有
- (UIView *)handleTapFrom:(UITapGestureRecognizer *)sender
{
[view2 toThisView:sender.view]; // Error No visible @interface for 'UIViewController' declares the selector 'toThisView:'
}
其中view2为UIViewController *view2
,并通过此类的init方法将其设置为view2 = object
- (id)initWithPath:(NSString *)path andObject:(NSObject *)object
为什么我收到此错误:
No visible @interface for 'UIViewController' declares the selector 'toThisView:'
答案 0 :(得分:1)
如果view2
是您的自定义类型对象,那么您只需执行此操作:
[(YourCustomClass *)view2 toThisView:sender.view];
在viewController中导入YourCustomClass.
。
答案 1 :(得分:0)
听起来你有一个名为ViewController
的类,它是UIViewController
的子类。
听起来你还有一个名为view2
的实例变量,你可以这样声明:
@implementation Packages {
UIViewController *view2;
}
或者可能是这样的:
@interface Packages : NSObject
@property (nonatomic, strong) UIViewController *view2;
您需要将view2
声明为ViewController
,而不是UIViewController
。换句话说,声明如下:
@implementation Packages {
ViewController *view2;
}
或者像这样:
@interface Packages : NSObject
@property (nonatomic, strong) ViewController *view2;
答案 2 :(得分:0)
我认为你需要添加
-(void)toThisView:(UIView *)someView
到你的viewController.h文件,否则它将无法从任何其他类中看到。
答案 3 :(得分:0)
首先在viewController中导入自定义类。 创建一个类的对象。
调用方法就像这样。
[object toThisView:YourPrameter];
在调用之前,还要在类.h文件中声明此方法,如下所示
-(void)toThisView:(UIView *)someView;