我使用 firstclassViewController 和 secondclassViewController 创建了两个类名,
在我的 secondclassViewController 类中,我想访问 firstclassViewController 的UIlabel
,我想将UILabel
的值更改为新值。
这是我的代码段,
firstclassViewController.h
@property (strong, nonatomic) UILabel *navLabel;
firstclassViewController.m
navLabel = [[UILabel alloc] initWithFrame:CGRectMake(70,7,180,30)];
navLabel.text = @"Categories";
navLabel.font = [UIFont boldSystemFontOfSize:16.0f];
navLabel.textColor = [UIColor blackColor];
navLabel.backgroundColor = [UIColor clearColor];
navLabel.textAlignment = UITextAlignmentCenter;
[[self.navigationController navigationBar] addSubview:navLabel];
secondclassViewController.m
firstclassViewController.m *Obj=[[firstclassViewController.m alloc] initWithNibName:@"firstclassViewController.m" bundle:nil];
Obj.navLabel.text=@"New Value";
但我无法改变UILabel的价值..
任何帮助都会得到满足。
答案 0 :(得分:2)
在secondclassViewController和firstclassViewController之间进行通信的最佳方式是使用委托。
在这篇文章中查看Rob的回答 Use of Delegates to Communicate Between View Controllers
一般的想法是......你的第一个控制器应该设置第二个委托指向第一个视图控制器。
答案 1 :(得分:1)
实现此目的的一种方法是将UILabel
对象从第一个视图控制器传递到segue中的第二个对象。当您执行firstclassViewController *Obj = [[firstclassViewController alloc] initWithNibName:@"firstclassViewController" bundle:nil];
时,您正在创建新实例,因此您对标签所做的更改仅适用于视图控制器的此实例。