我已经用其他几种语言进行了编程,但这基本上是我的第一个 ios 应用程序,我正在努力正确实现 UITableView。阅读文档后,最常见的方法是创建一个作为 UITableViewController 子类的类。我已经这样做了,我已经实现了所有数据源协议方法以及委托协议中的行选择方法,并为其赋予了三个属性。
第一个是 tableview 中的行数,第二个是要在 table view 中显示为标签的项目数组,最后有一个属性来保存所选行中标签的文本。选择该行后,我设置保存此标签的属性,然后使用[self.view removeFromSuperView]
.
以上不是我的应用程序中的唯一视图。该应用程序是来自学校的颜色选择器任务,因此主视图包含用于操作显示颜色的所有控件。
在子类化 UITableViewController 之后我所做的是,在我的主视图控制器中创建该子类的一个实例并将其设为属性。因此,主视图上有一个调用按钮,允许用户从先前保存的颜色列表中进行选择。单击此按钮时,将调用此 IBAction 方法
-(IBAction)swithToSavedColorsView:(id)sender {
self.savedColorTable.numberOfRows = self.dictionaryOfSavedColors.count;
NSLog( @"Count in switch view is %d", self.dictionaryOfSavedColors.count );
[ self.view addSubview:self.savedColorTable.view ];
}
这显示了可用保存颜色的列表,我响应行选择
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:
(NSIndexPath *)indexPath {
self.textFromColorSelection = [ [ NSString alloc ] init ];
UITableViewCell *cell = [ tableView cellForRowAtIndexPath:indexPath ];
self.textFromColorSelection = cell.textLabel.text;
NSLog(@"The value of selection is %@ ", self.textFromColorSelection );
[ self.view removeFromSuperview ]; // Go back to main screen.
}
当我编写这段代码时,我有一种奇怪的感觉,我从一开始就以完全错误的方式创建 UITableView。如果我做错了什么,请让我知道我如何在这些对象之间建立通信。
我实际上试图解决的问题是在我调用后的上述方法中
[ self.view removeFromSuperView ]
,我的其他视图如何知道何时发生这种情况?当 UITableView 关闭时,我想做的是让我的另一个视图从我创建的实例中获取标签属性,并使用该标签从数据库中检索信息。
感谢您的帮助,非常感谢。