我正在使用带有三个标签的应用程序。
从第一个选项卡,我想访问在选项卡#3 [-由SettingsViewController定义]内部恰好定义为@property的变量。
我将以下导入行添加到第一个选项卡的头文件中:
#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”的对象上找不到属性“用户名”
将id类型转换为我所需要的正确的Objective-C方法是什么?
最佳答案
您只需要修复括号即可。目前,它正在评估“ self.tabBarController.viewControllers [2] .username”,然后进行强制转换
这应该工作:
self.username = ((SettingsViewController *)self.tabBarController.viewControllers[2]).username;