我正在开发一个包含三个标签的应用。 从第一个选项卡开始,我想访问在选项卡#3中定义为@property的变量[ - 由SettingsViewController定义]。
我将以下导入行添加到第一个标签的标题文件中:
#import "SettingsViewController.h"
我的SettingsViewController标头有IBOutlet,如下所示:
@property (retain, nonatomic) IBOutlet UITextField *username;
从我在第一个标签中的实现中调用:
NSLog(@"Figuring out how to access the Settings view %@", self.tabBarController.viewControllers[2]);
它正确指向正确的对象,打印出来:
2014-08-11 14:46:12.700 backup[30043:60b] Figuring out how to access the Settings view <SettingsViewController: 0x8db2020>
但下面不起作用:
self.username = (SettingsViewController *)self.tabBarController.viewControllers[2].username;
我收到一个XCode静态代码分析器错误:在'id'类型的对象上找不到属性'username'
将id类型转换为我需要的正确的Objective-C方法是什么?
答案 0 :(得分:0)
您只需修复括号即可。目前它正在评估“self.tabBarController.viewControllers [2] .username”,然后进行演员
这应该有效:
self.username = ((SettingsViewController *)self.tabBarController.viewControllers[2]).username;