【问题标题】:Changing a UITextView when a UITableView cell is touched触摸 UITableView 单元格时更改 UITextView
【发布时间】:2012-12-14 12:36:47
【问题描述】:

这似乎是一个简单的问题,但我找不到答案。

我只想在用户触摸 uitableview 中的单元格时更改 uitextview 中的文本。

uitextview 将变为什么取决于他们在表格中单击的单元格。

这就是我正在尝试的:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
{
    myTextView.text = [myData2 objectAtIndex:indexPath.row];
}

我已经通过在 ViewDidLoad 中初始化 myTextView 来确保它工作正常并且文本正常。

另外作为背景故事...有一个表格,其中包含来自名为 myArray 的数组的数据...当您触摸其中一个单元格时,它会转到另一个屏幕,其中几乎只有一个 UITextView,然后将从另一个数组读取myArray2 与您单击的行号到数组中的相应行。

当我做所有这些时,文本不会改变。

有什么想法吗?

【问题讨论】:

  • 什么是 myData2?它包含什么?
  • 当你做 myTextView.text = @"foo";
  • myData 和 myData2 只是字符串数组
  • 并没有任何改变...
  • 这将有助于查看更多数据,最好是每个屏幕/类。这可能是这两条线之外发生的任何事情。

标签: ios xcode uitableview uitextview


【解决方案1】:

myTextView 是 (IBOutlet) 属性吗?如果是这样,它实际上是否链接到 Inerface Builder 中的实际 IB 对象作为出口?听起来好像有问题,因为如果您输入一个简单的行来更改代码(如 cmets 中所见),它也不会改变

【讨论】:

  • 是的,我这样声明:@property (nonatomic, retain) IBOutlet UITextView *myTextView;
  • 故事板中 UITextView 的出口是 View Controller。
  • 插座连接了吗?
  • 出口是委托 -> 视图控制器
  • 连接是什么意思?当我右键单击 IB 中的 TextView 时,它具有连接到 View 控制器的委托气泡
【解决方案2】:

根据您在问题中所写的内容,我认为您的 textview 在另一个控制器中,所以首先,您不能直接从另一个控制器更新某些控制器的 UI。您必须在包含 textview 的视图控制器中创建一个 int 类型属性,将该 int 设置为 indexPath.row。并将该 int 用作 myData2 数组的 objectAtIndex。如果你的 textView 真的在另一个视图控制器中,你必须做一些工作

【讨论】:

    【解决方案3】:

    我猜你已经正确连接了你的代理。如果您尚未连接您的委托,则不会调用 didSelectRowAtIndexPath 方法。

    【讨论】:

    • 从评论看来,他无法从代码中访问TextView,这与UITableView的委托无关。
    猜你喜欢
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多