0

我有两个类,Client_MainClient_demo
Client_Main类中,我使用显示客户端名称的标签,单击 Client_Main 类中的按钮后,Client_demo类添加为子视图。现在,当我单击Client_demo类上的按钮时,我想更改Client_Main类标签的文本。

所以请建议我如何做到这一点。

4

2 回答 2

0

UILabel为in superview放置一个唯一标签

[superview subviews];返回超级视图中的所有视图对象,并从中获取具有您设置的唯一标签的视图对象,仅此而已

 for (UILabel *label in [yourSubview.superview]) {
        if (label.tag==uniqueID) {
            //Here is your uilabel instance ,do what you want
        }
    }

或者

正确的方法:委托

只需在超级视图上创建一个具有实现的委托方法,即可使用其实例更改标签。从子视图类触发委托方法

更多关于授权

于 2013-05-16T06:17:24.647 回答
0

有两种方法可以从子视图 1-通过 NSNotification 在此方法中更新超级视图,您必须在超级视图 calass 中创建通知并像这样设置观察者

//you can write this code in viewDidLoad 

  [[NSNotificationCenter defaultCenter] addObserver:self  selector:@selector(notificationEventForUpdateData:)   name:@"NotificationForUpdateHomeScreenData" object:nil];

and define this method notificationEventForUpdateData in same superview class in this method    you can update label textfield etc whatever you want 

 -(void) notificationEventForUpdateData: (NSNotification *)notification
 {
     self.label.text=@"newvalue";
 }

从子视图中,您必须从要更新的操作(内部方法)发布此通知,例如按钮单击或表格视图的单元格选择等

   [[NSNotificationCenter defaultCenter]
 postNotificationName:@"NotificationForUpdateHomeScreenData" 

2-方式是适当的委派

于 2013-05-16T07:23:21.837 回答