这是一个简单的问题,我相信我过去一直在努力。我正在尝试在视图中调用方法
#import <UIKit/UIKit.h>
@interface View : UIView {
}
-(void)spinAction;
@end
来自视图控制器
#import <UIKit/UIKit.h>
#import "View.h"
@interface layers3ViewController : UIViewController {
IBOutlet View *view;
}
-(IBAction)spinButton:(id)sender;
@end
通过方法
-(IBAction)spinButton:(id)sender{
[view spinAction];
}
但无法开展工作。使用Interface Builder将所有内容组合在一起。我在这里做了一些根本错误的事吗?之前的代码通过put
工作[self.view spinAction]
虽然有错误消息,但在这里工作甚至没有。任何提示/建议超过欢迎。
答案 0 :(得分:2)
view
已经是UIViewController的一个属性,它是IBOutlet
所以我不确定在接口生成器中建立关联时会设置view
。
试试这个
#import <UIKit/UIKit.h>
#import "View.h"
@interface layers3ViewController : UIViewController {
//IBOutlet View *view;
}
-(IBAction)spinButton:(id)sender;
@end
和
-(IBAction)spinButton:(id)sender
{
View *myView = (View *)self.view;
[myView spinAction];
}
当然,在Interface Builder中,请确保与view
商店相关联的对象是您的View
类的实例。
答案 1 :(得分:1)
self.view
返回类UIView的对象,您可能不应该尝试更改它。您需要创建一个类View
的新插座,并在界面构建器中将其连接起来。
@interface layers3ViewController : UIViewController {
IBOutlet MyView *myView;
}
@property (nonatomic,retain) IBOutlet MyView *myView;
-(IBAction)spinButton:(id)sender;
@end
在您的实现中应该如下所示:
@implementation layers3ViewController
@synthesize myView;
-(IBAction)spinButton:(id)sender{
[self.myView spinAction];
}
不要忘记将Interface Builder中的myView插座连接到您的视图。