0

我有两个UIView包含在一个UIViewController-firstViewsecondView- 我务实地初始化。我有一个UILabelfirstView,一个UIButtonsecondView。我希望第二个视图中的按钮更改第一个视图中的标签。在第二个视图的实现文件中,我有以下代码:

- (void) changeLabel: (UIButton *) sender{
    firstView *view = [[firstView alloc] init];
    view.label.text = @"Changed Text";
}

但是我发现上面的方法只是初始化了一个新的 firstView 类,并没有链接到现有的UIView. 如何firstView从内部更改属性secondView

4

1 回答 1

2

在视图控制器的头文件中为视图创建属性:

@property (nonatomic, retain) UIView *firstView;
@property (nonatomic, retain) UILabel *label;

创建视图和标签时,将它们分配给属性:

self.firstView = // create your view here

self.label = // create your label here

在您的 UIView 对象上创建一个按钮属性,以便您以后可以访问它:

@property (nonatomic, retain) UIButton *button;

然后在您的视图控制器文件中,当您创建所有内容时,访问视图的按钮属性并添加一个目标,如下所示:

[firstView.button addTarget:self action:@selector(changeLabel) forControlEvents:UIControlEventTouchUpInside];

然后你可以简单地让你的按钮调用的方法是这样的:

- (void)changeLabel {
    self.label.text = @"Changed Text.";
}
于 2014-08-25T21:39:55.907 回答