2015-07-12 3 views
1

Im, использующий ViewController с TableView внутри.Swift: Индикатор раскрытия не отображается, если Segue

Если я активирую «Индикатор раскрытия» и сделаю запись, Значок Disclosure не отображается.

Если я прокомментирую строку: self.myTable.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myTableCell"), отображается индикатор раскрытия, но segue больше не работает.

Вот мои фрагменты кода:

override func viewDidLoad() { 
    self.myTable.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myTableCell") 
} 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cellIdentifier = "myTableCell" 
    var cell = self.myTable.dequeueReusableCellWithIdentifier(cellIdentifier) 

    if cell == nil { 
     cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellIdentifier) 
    } 

    let resultCarForList_data = resultCarNameForList[indexPath.row] 
    cell!.textLabel?.text = resultCarForList_data 

    return cell! 
} 

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    selectedCarID = resultCarIDList[indexPath.row] 
    performSegueWithIdentifier("klickCarDetail", sender: self) 

} 

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    if(segue.identifier == "klickCarDetail") { 
     let DestViewController : CarDetail = segue.destinationViewController as!CarDetail 
     DestViewController.passedCarID = selectedCarID 
    } 
} 

Где может быть проблема?

ответ

1

Чтобы показать индикатор раскрытия, установите accessoryType свойство:

if cell == nil { 
    cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: cellIdentifier) 
    cell.accessoryType = UITableViewCellAccessoryType.DisclosureIndicator 
} 

А почему переход не работает: вы можете использовать два типа перетекает в этом случае. Один из них состоит в том, чтобы сделать UITableViewCell происхождение segue (в раскадровке); в этом случае Interface Builder автоматически добавит индикатор раскрытия информации. В этом случае не нужен звонок performSegueWithIdentifier("klickCarDetail", sender: self) (и не звонок registerClass); segue будет запускаться автоматически, когда пользователь выбирает строку. Другой, который вы используете в настоящее время, - использовать ручной переход от одного контроллера представления к другому.

Смежные вопросы