Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何从父类使用IBOutlet?_Iphone_Objective C_Ios - Fatal编程技术网

Iphone 如何从父类使用IBOutlet?

Iphone 如何从父类使用IBOutlet?,iphone,objective-c,ios,Iphone,Objective C,Ios,我正在使用iOS,从父类访问IBMOutlet时遇到了一些问题,在本例中是带有角色生命的标签 我的ViewController(父级)如下所示: @interface OpponentViewController : UIViewController { IBOutlet UILabel *opponent_life; IBOutlet OpponentView *opponentView; } @end OpponentView(child)类是角色(图像)所在的位置,也是玩家进行所有触摸交

我正在使用iOS,从父类访问IBMOutlet时遇到了一些问题,在本例中是带有角色生命的标签

我的ViewController(父级)如下所示:

@interface OpponentViewController : UIViewController {
IBOutlet UILabel *opponent_life;
IBOutlet OpponentView *opponentView;
}
@end
OpponentView(child)类是角色(图像)所在的位置,也是玩家进行所有触摸交互的位置。当玩家触摸对方视图时,标签应刷新

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

} 

谢谢。

例如,OpponentView应该是UIImageView之类的子类。

我可能误解了您遇到的问题,但是如果您根本无法将实例变量视为出口,您可以尝试在属性声明中包含
IBOutlet
。例如:

@property (nonatomic, retain) IBOutlet UILabel *opponent_life;
@property (nonatomic, retain) IBOutlet OpponentView *opponentView;

在代码中,
OpponentView
类扩展了任何类,如
UIView
UIImageView

因此,您必须将
UIView
UIImageView
(根据需要)从库中拖动到
IBOutlet
中的
对手视图

然后将inspector中“viewIdentity”中的类更改为
OpponentView
。然后您可以链接到文件所有者

这样你就能解决你的问题

问候,


Satya

如果我正确理解了你的问题,当你在
对手视图
中检测到触摸时,你想更新
对手的生活。以下是两种将标签分配给视图的方法,以便可以从
到使用标签:withEvent:

1.将标签指定给IB中的视图 在
OpponentViewController
的nib文件中,将视图类型从
UIView
更改为
OpponentView
,然后将标签连接到视图的出口

2.在
viewDidLoad
在'OpponentViewController'中

- (void)viewDidLoad {
  [super viewDidLoad];
  opponentView.opponent_life = opponent_life;
}
@interface OpponentView : UIView {
  UILabel *opponent_life;
}

@property (nonatomic, retain) UILabel *opponent_life;
- (void)viewDidLoad {
  [super viewDidLoad];
  opponentView.opponent_life = opponent_life;
}