我试图在我的第一个视图控制器中使用UITextField的.text,在我的第二个视图控制器中使用UITextField的另一个.text,但是我的firstPage.firstTField.text在我的第二个视图控制器中甚至是(null)虽然我在我的第一个视图控制器中打印了_firstTField.text,但它打印出输入的输入。
可能是什么问题?为什么是null?
@property (weak, nonatomic) IBOutlet UITextField *firstTField;
@property (weak, nonatomic) IBOutlet UITextField *secondTField;
#import "FirstViewController.h"
- (void)viewDidLoad {
[super viewDidLoad];
FirstViewController *firstPage = [[FirstViewController alloc] init];
_secondTField.text = firstPage.firstTField.text;
}
答案 0 :(得分:0)
您应该将视图控制器的视图视为私有。这是视图控制器外观的一部分,而不是它的功能,如果视图控制器外部的对象期望视图以某种方式显示,那么当您更改视图控制器视图的外观时,它会破坏其他代码。坏。
在这种情况下情况更糟。它只是不起作用,因为@nhgrif解释道。您刚刚创建了一个新的FirstViewController对象,它的视图甚至还不存在。 (在系统被要求将视图控制器显示到屏幕之前,不会创建视图控制器视图。)
您应该在视图控制器中创建一个属性,公开您需要读/写的字符串,然后使用它。
然而,您会创建一个视图控制器的新实例,然后立即尝试从其中一个字段中读取文本,这很奇怪。如果之前在线上创建了视图控制器,它怎么可能有有用的数据呢?你期待发生什么?