ios - 无法访问容器 View 的 tableview Controller 元素

标签 ios objective-c uitableview uiviewcontroller

我有一个 View Controller (vc1),它有一个容器 View ,下面有一个保存按钮。容器 View 嵌入到具有静态单元格的 tableview Controller (tvc1)。每个单元格都有标签和文本字段。
我正在尝试在 vc1 中获取 tvc1 中文本字段的内容。
我尝试了两种方法:

在vc1中准备segue:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"prepare for segue called in settings view controller.");
    NSString * segueName = segue.identifier;
    if ([segueName isEqualToString: @"embedseguesettings"]) {
        NSLog(@"embed segue called ");
        settingsTableViewController *tvc1 = (settingsTableViewController *)segue.destinationViewController;
        tvc1.surlTextField.text = @"i got u ";        
    }
}

我正在打印“embed segue called”,但 tvc1 中的文本字段没有更新为我的文本“i got u”。我有正确的 tvc1 对象吗?

在 vc1 中实例化 tvc1:
- (IBAction)save:(id)sender {
    settingsTableViewController *tvc1 = [self.storyboard instantiateViewControllerWithIdentifier:@"settingsTableView"];
    NSLog(@"surl textfeild = %@",tvc1.surlTextField.text);
}

但我总是得到 null 作为输出。我输入一些文本到 surl 文本字段,然后按保存。我总是得到空值。

settingsTableViewController 是容器 View 的 TableView Controller ,我只设置了该类中的节数和行数。我是否需要使单元格出列,我不应该? ,它是一个静态表格 View 。

最佳答案

问题是您在加载 View 之前在 tvc1 中设置 textField 值。

您应该在 tvc1 中添加一个属性...

@property (nonatomic, strong) NSString* someText;

然后在你的prepareForSegue方法,分配给 someText还有保留对 tvc1 的引用
if ([segueName isEqualToString: @"embedseguesettings"]) {
    settingsTableViewController *tvc1 = (settingsTableViewController *)segue.destinationViewController;
    tvc1.someText = @"i got u ";   
    self.tvc1 = tvc1     
}

在你的 tvc1 viewDidLoad
tvc1.surlTextField.text = self.someText

然后在您的保存方法中:
- (IBAction)save:(id)sender {
    // Don't instantiate a new tvc1
    NSLog(@"surl textfeild = %@",self.tvc1.someText);
}

关于ios - 无法访问容器 View 的 tableview Controller 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42509244/

相关文章:

objective-c - JSON 返回值在 Objective-C : iOS 中被错误解析

ios - UITableView 单元格中的 UIStackView 在滚动时会导致抖动

ios - 如何对 View 中的约束进行分组

ios - 自定义 XML 解析器 - 当某些键不存在时该怎么办?

ios - 是否有可能知道什么时候 [UIDynamicItemBehavior addLinearVelocity :forItem:] has finished running?

ios - 我可以用 Storyboard替换所有 xib 吗

ios - Swift:使用sectionNameKeyPath的单元格的indexPath

ios - 如何在嵌入式 UIImagePickerController 中隐藏导航栏

objective-c - 关闭模态视图 Controller 后呈现不同的 View Controller

objective-c - 数组未到达 cellForRowAtIndexPath