내 UITableView
셀에는 JSON
이 채워집니다. 내 키 값 중 하나는 'ID'이며 내 UIActivityViewController
에 URL을 작성하는 데 필요합니다.UIActivityViewController (Swift)에서 VC의 셀 종속 변수를 가져옵니다.
나는 didSelectRowAtIndexPath
을 사용하고 있지 않지만 대신 각 셀에 UIButton
이있어 ActivityViewController
을 활성화합니다. 어떻게하면 셀의 공유 버튼이 선택되었는지 감지하고 해당 셀의 "ID"를 ActivityViewController
으로 보내 URL에 추가 할 수 있습니까?
이것은 내 VC의 문자열로서 "ID"로 채워질 준비가되었습니다.
var passID: String = ""
이 내 IBAction
및 UIActivityViewController
설정입니다. 내 "secondActivityItem
"은 URL
이며 단순히 셀의 "ID"에 따라 다릅니다.
@IBAction func shareSheet(sender: AnyObject){
let firstActivityItem = "Help us meet a need this Christmas season! Can you meet this need?"
let secondActivityItem : NSURL = NSURL.URLWithString("http://www.domain.com/\(passID)")
let activityViewController : UIActivityViewController = UIActivityViewController(
activityItems: [firstActivityItem, secondActivityItem], applicationActivities: nil)
activityViewController.completionWithItemsHandler = {(activityType, completed:Bool, returnedItems:Array!, error:NSError!) in
if !completed {
println("cancelled")
return
}
if activityType == UIActivityTypePostToTwitter {
println("twitter")
}
if activityType == UIActivityTypeMail {
println("mail")
}
}
self.presentViewController(activityViewController, animated: true, completion: nil)
}
이것은 내 cellForRowAtIndexPath
입니다.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:CustomCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as CustomCell
//Assign JSON keys to variables
var rowData: NSDictionary = dataArray[indexPath.row] as NSDictionary
var firstName=rowData["needFirstname"] as String
var descrip=rowData["needDescription"] as String
var city=rowData["needCity"] as String
var state=rowData["needState"] as String
var country=rowData["needCountry"] as String
var needID=rowData["id"] as String
return cell
}
어떤 이유로 당신 돈 didSelectCellAtIndexPath를 사용하고 싶지 않으십니까? 그렇지 않으면 단추의 부모보기를 사용하여 셀에 대한 참조를 가져온 다음 tableView의 indexPathForCell 메서드를 호출합니다. –
디자인 용도로는 이렇게해야합니다. 세그 (segues)를 수행하는 각 셀에는 두 개의 사용자 정의 UIButton (하나가 됨)이 있습니다. 당신이 언급 한 것에 기초하여 대답을 던지는 마음? – davidrayowens
불행히도, 나는 현재 모바일이며 코드를 효과적으로 작성할 수 없습니다. 죄송합니다. –