我在iOS上工作,在从父类访问IBOutlet时遇到了一些麻烦,在这种情况下,是一个带有角色生命的标签。
我的ViewController(parent)是这样的:
@interface OpponentViewController : UIViewController {
IBOutlet UILabel *opponent_life;
IBOutlet OpponentView *opponentView;
}
@end
OpponentView(child)类是角色(图像)所在的地方,也是玩家进行所有触摸交互的地方。当玩家触摸OpponentView时,标签应该被刷新。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
}
谢谢。
4条答案
按热度按时间ukxgm1gy1#
如果我没有理解错您的问题,您希望在检测到
opponentView
中的触摸时更新opponent_life
。1.为IB中的视图分配标签
在
OpponentViewController
的nib文件中,将视图的类型从UIView
更改为OpponentView
,然后将标签连接到视图的插座。2.在
viewDidLoad
中分配标签在`OpponentViewController'中
vyswwuz22#
例如,OpponentView应该是UIImageView的子类。
bvn4nwqk3#
我可能误解了你遇到的问题,但是如果你根本看不到示例变量作为outlet,你可以尝试在属性声明中包含
IBOutlet
。例如:kokeuurv4#
在代码中,
OpponentView
类是一个扩展任何类的类,如UIView
或UIImageView
等。因此,您必须将
UIView
或UIImageView
(根据要求)从Library中拖动到IBOutlet
中的OpponentViewController's
视图。然后将检查器中“viewIdentity”中的类更改为
OpponentView
。然后您可以链接到文件所有者。这样你就可以解决你的问题。