2015-10-18 23 views
6

UITableViewController'da Swift 2'de accessoryButtonTappedForRowWithIndexPath: uygulamasını deniyorum.Uygulayıcı accessoryButtonTappedForRowWithIndexPath: Swift 2'de

Aşağıda açıkladığım gibi, disclosureIndicator'u oluşturduğumda bir şey kaçırdığımı düşünüyorum, ama ne olduğunu bilmiyorum. Koddan çizilir, ancak hedef eylemim çağrılmaz. UGH!

Program aracılığıyla bunu yapmak için, benim cell benim cell dönmeden önce detailDisclosure göstergesini cellForRowAtIndexPath içine eklemem gerekir. Benim kod

// Create disclosure indicator button in the cell 
let disclosureIndicatorButton = UIButton(type: UIButtonType.DetailDisclosure) 
disclosureIndicatorButton.addTarget(self, action: "disclosureIndicatorPressed:event:", forControlEvents: UIControlEvents.TouchUpInside) 
customCell.accessoryType = .DisclosureIndicator 

, detailDisclosure chevron çekilir, ama kendisine verilen hedef eylem yöntemi denir almaz şu şekildedir: Bunu yapıyorum.

func disclosureIndicatorPressed(sender: UIButton, event: UIControlEvents) { 
    print("disclosure button pressed") 
    // convert touches to CGPoint, then determine indexPath 
    // if indexPath != nil, then call accessoryButtonTappedForRowWithIndexPath 
} 

Nihayet accessoryButtonTappedForRowWithIndexPath Yapabileceğim segue gerçekleştirmek için kod içerir:

Sonra basılı ne zaman düğme için bir işleyici oluşturmanız gerekir. Neyi kaçırıyorum?

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/#//apple_ref/occ/intfm/UITableViewDelegate/tableView:accessoryButtonTappedForRowWithIndexPath

:

cevap

12

kodda böyle açıklama düğmesi göstergesi ekliyoruz neden emin.

Ne arıyorsun sadece 2 aşamalı bir işlemdir -

Adım 1: hücre üzerinde doğru accessoryType ekleyin:

cell.accessoryType = .DetailDisclosureButton 

Adım 2: düğme tarafından dokunulduğunda Kulanıcıları accessoryButtonTappedForRowWithIndexPath işlevini yaratma işlevi:

+0

Bu benim sorunumdu. 'DisclosureIndicator' sadece göz şekeri, çizilmekten başka bir şey yapmaz. 'DetailDisclosureButton' aslında ona bağlı eylemlere sahip olabilir. Beni uzaklaştırdığın için teşekkür ederim. – Adrian

+1

Yardım ettiğine sevindim! Şerefe :)! – Abhinav