我有两个课程, Client_Main 和 Client_demo 。
在 Client_Main 类中,我使用的是显示客户端名称的标签,点击 Client_Main 类中的按钮后,我添加了 Client_demo < / strong>类作为子视图。现在当我点击 Client_demo 类上的按钮时,我想更改 Client_Main 类标签的文本。
所以请建议我如何做到这一点。
答案 0 :(得分:0)
在superview
中为UILabel
添加唯一标记
[superview subviews];
返回超视图中的所有视图对象,然后从中获取具有您设置的唯一标记的视图对象,即
for (UILabel *label in [yourSubview.superview]) {
if (label.tag==uniqueID) {
//Here is your uilabel instance ,do what you want
}
}
或强>
正确方法:代表团
只需在superview上创建一个带有实现的委托方法,即可使用其实例更改标签。 从子视图类
触发委托方法答案 1 :(得分:0)
有两种方法可以从子视图更新superview 1-Via NSNotification 在这个approch你必须在superview 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路是正确授权