我有一个主视图控制器(ViewControllerA),它有一个带有子控件ViewControllerB的容器,里面有几个标签和按钮。在应用程序的使用过程中,NSUserDefaults
将会更改,并且ViewControllerB中的标签需要更新(简化版本)。在外部调用的方法中使用“self”
我在ViewControllerB的类文件里面有一个方法,我可以从ViewControllerA访问,但是调用该方法并没有更新我怀疑是由于self
引用引起的标签。该方法肯定大火和我已经包括ViewControllerB的在ViewControllerA等头类
- (void)testingMethod{
if(![[NSUserDefaults standardUserDefaults] stringForKey:@"firstValue"]){
[[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:@"firstValue"];
[[NSUserDefaults standardUserDefaults] setObject:@"0" forKey:@"secondValue"];
[[NSUserDefaults standardUserDefaults] setObject:@"Never" forKey:@"thirdValue"];
}
self.firstLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey:@"firstValue"];
self.secondLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey:@"secondValue"];
self.thirdLabel.text = [[NSUserDefaults standardUserDefaults] stringForKey:@"thirdValue"];
}
的方法是从IBAction
ViewControllerA的类中调用从像这样:
- (IBAction)doThis:(id)sender{
ViewControllerB * something;
something = [[ViewControllerB alloc] init];
[something testingMethod];
}
我的问题则是如何在从创建类的外部调用该方法时如何获取这些标签?
接口生成器示例屏幕截图: 单击按钮时,子视图中的标签应该更新。
您是否在与显示的实例相同的实例上调用此方法?你能说出你称之为这种方法的部分吗? – streem
我编辑了我的问题以显示来自ViewControllerA的.m文件的调用方法。这应该有希望给你一些见解。 – ScottMcGready
啊!你如何从A移到B?你在用Segue吗?你可以展示你如何从A到B的代码。 – Fogmeister