我写了:
func initializeMyDictionary() {
self.example = [MyDictionary(name: "Some Name", text: "some text", link: "linkToSomeDocument"),
MyDictionary(name: "Second Name", text: "some text", link: "secondLink")]
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let identifier: String = "tableCell"
var cell: TableCell! = tableView.dequeueReusableCellWithIdentifier(identifier) as? TableCell
if cell == nil {
cell = TableCell(style: UITableViewCellStyle.Value1, reuseIdentifier: identifier)
}
cell!.nameLabel!.text = example[indexPath.row].name
return cell!
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return example.count
}
然后将它链接到Main.storyboard上的DetailViewController(我创建)。每个myDictionary字符串的DetailView都显示在我的tableView中。一切正常。
但是我想让一些行显示MyDictionary的第二个值(链接)。 第1行显示我"名称"和"文字"来自MyDictionary,第2行显示来自" link"的文档或URL。它是不可能的或如何做这样的事情?
我很抱歉无知和英语不好。
答案 0 :(得分:0)
两种方法:
<强> 1 强>
删除从原型单元格到视图控制器的storyboard segue,只需实现UITableViewDelegate
方法-(void) tableView: (UITableView*) tableView didSelectRowAtIndexPath: (NSIndexPath*) indexPath
方法并在那里推送另一个视图控制器,如:
- (void) tableView: (UITableView*) tableView didSelectRowAtIndexPath: (NSIndexPath*) indexPath
{
// the identifier of the viewController in storyboard
NSString* identifier = nil;
// section 0
switch (indexPath.section) {
case 0:
// rows in section 0
switch (indexPath.row) {
// row 0 in section 0
case 0: identifier = @"IdentifierOfVCForFirstCellInFirstSection"; break;
case 1: identifier = @"IdentifierOfVCForSecondCellInFirstSection"; break;
default: break;
}
break;
default: break;
}
//
if (identifier != nil) {
// perform Segue programmatically
[self.navigationController pushViewController: [[self storyboard] instantiateViewControllerWithIdentifier: identifier] animated: YES];
}
else {
NSAssert(NO, @"No storyboard identifier implemented for row %@ in section %@", @(indexPath.row), @(indexPath.section));
}
}
OR 2。
将另一个原型单元添加(拖放)到IB中的tableView中。在Attributes Inspector中为它指定一个不同的重用标识符。
然后将其与您想要的不同viewController连接(右键单击并在'Triggered Segues'
下拖动selection
到您想要的视图控制器。
然后,在cellForRowAtIndexPath
方法中,根据您的indexPath决定哪种UITableViewCell
你的魔杖出队。
对于第二个解决方案,我建议使用自定义UITableView子类/ Xib作为原型单元格。