ios - 将数据从 ViewController 传递到实例化的自定义 View Controller

标签 ios objective-c viewcontroller

我正在尝试将数据从我的数据库传递到在此函数中实例化的新 View Controller 中的 UILabels。我已经测试过数据是否被正确抓取,并且工作正常。

我相信我没有在我的 DataViewController 中为实例化正确引用 UILabel。当我尝试 NSLog (dataViewController.cartAddress) 时得到空值

有什么帮助吗?

ViewController.m

- (void) mapView:(GMSMapView *)mapView didTapInfoWindowOfMarker:    (GMSMarker *)marker {
NSObject_DatabaseHelper *dataToPush = [NSObject_DatabaseHelper getSharedInstance];
NSArray *cartDataToPush = [dataToPush findByName:marker.title];

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
DataViewController *dataViewController = (DataViewController *)[storyboard instantiateViewControllerWithIdentifier:@"dataViewController"];

dataViewController.cartAddress.text = cartDataToPush[0];
dataViewController.thumbsUp.text = cartDataToPush[3];
dataViewController.thumbsDown.text = cartDataToPush[4];
dataViewController.pitaBool.text = cartDataToPush[5];
dataViewController.drinkBool.text = cartDataToPush[6];
dataViewController.greenSauceBool.text = cartDataToPush[7];


[self.navigationController pushViewController:dataViewController animated:YES];

最佳答案

当您实例化 viewController 时,它还没有设置它的 UI。 因此,在触发 viewController 的 viewDidLoad 回调之前,您将无法与 UILabel 进行交互。所以,做你想做的最好的方法是设置 NSString 属性,并在 viewDidLoad 中将它们设置到 UILabels 中。类似的东西

@property (nonatomic, strong) NSString *cartAddressText;
/* ... */

然后在viewDidLoad

- (void) viewDidLoad {
     [super:viewDidLoad];
     self.cartAddress.text = self.cartAddressText;
     /* ... */
}

关于ios - 将数据从 ViewController 传递到实例化的自定义 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30008174/

相关文章:

ios - 解析未检索到或未在 UITableView 中显示的对象

ios - 在主视图 Controller 中呈现警报 View (从子类调用)

ios - 在 xcode 项目中使用 Matlab 功能

iphone - 访问数组中的 UIView 对象

ios - 在分离的 View Controller 上呈现 View Controller

swift - 从 appdelegate 更新 viewcontroller - 最佳实践?

ios - 添加数组以在 Swift : SpriteKit 的 for 循环中移动图像组

ios - 使用UIButtons在自定义键盘中输入UITextFields,键盘重新出现,而不是输入文本

iphone - 当用户旋转到横向时全屏播放视频,然后在视频停止时以编程方式旋转回来

ios - iOS 9 中的 POST 值获取错误(NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9813)