TabBarController:访问UIViewController内部的属性

时间:2014-08-11 20:40:55

标签: ios objective-c casting tabs

我正在开发一个包含三个标签的应用。 从第一个选项卡开始,我想访问在选项卡#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方法是什么?

1 个答案:

答案 0 :(得分:0)

您只需修复括号即可。目前它正在评估“self.tabBarController.viewControllers [2] .username”,然后进行演员

这应该有效:

self.username = ((SettingsViewController *)self.tabBarController.viewControllers[2]).username;