我正在使用iOS并且在从父类访问IBOutlet时遇到一些问题,在这种情况下是一个带有该字符生命周期的标签。
我的ViewController(父级)是这样的:
@interface OpponentViewController : UIViewController {
IBOutlet UILabel *opponent_life;
IBOutlet OpponentView *opponentView;
}
@end
OpponentView(子)类是角色(图像)所在的位置,玩家可以触摸互动。当玩家触摸OpponentView时,标签应该刷新。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
}
感谢。
答案 0 :(得分:0)
OpponentView应该是UIImageView之类的子类,例如。
答案 1 :(得分:0)
我可能会误解您遇到的问题,但如果您根本看不到实例变量,则可以在属性声明中尝试包含IBOutlet
。例如:
@property (nonatomic, retain) IBOutlet UILabel *opponent_life;
@property (nonatomic, retain) IBOutlet OpponentView *opponentView;
答案 2 :(得分:0)
在代码中,OpponentView
类可以扩展任何类,如UIView
或UIImageView
等。
因此,您必须将UIView
或UIImageView
(根据要求)拖到图书馆OpponentViewController's
的{{1}}视图中。
然后将检查器中“viewIdentity”中的类更改为IBOutlet
。然后您可以链接到文件所有者。
这样你就可以解决问题了。
此致
萨蒂亚
答案 3 :(得分:0)
如果我正确理解您的问题,您希望在opponent_life
中检测到触摸时更新opponentView
。以下是将标签分配给视图的两种方法,以便可以在tocuhesBegan:withEvent:
@interface OpponentView : UIView {
IBOutlet UILabel *opponent_life;
}
在OpponentViewController
的nib文件中,您将视图类型从UIView
更改为OpponentView
,然后将标签连接到视图的插座。
viewDidLoad
@interface OpponentView : UIView {
UILabel *opponent_life;
}
@property (nonatomic, retain) UILabel *opponent_life;
在“OpponentViewController”
中- (void)viewDidLoad {
[super viewDidLoad];
opponentView.opponent_life = opponent_life;
}