다른 포스터는 전역 변수를 사용하는 것에 대한 언급이 최선의 방법이 아닙니다. 좋은 코딩 방법은 아니며, 일단 앱이 확장되면 매우 혼란 스러울 수 있습니다. TableView와 다른 뷰 (ViewController, Cell 등) 사이에 정보를 전달할 때 두 가지 옵션이 있습니다 (전역 변수 사용 제외).
첫 번째 옵션 : 사용 prepareForSegue 당신이 chosenFeed라는 변수를 만들 필요가의 ViewController 목적지에
. 그런 다음의 TableView의 하단에 당신은 데이터 전달이 prepareForSegue 기능을 사용할 수 있습니다
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if let destinationVC = segue.destinationViewController as ViewController {
destinationVC.chosenFeed = self.chosenFeed
}
}
을 OR이 데이터가 전송 될 필요가 당신을 선택하는 셀을 기반으로하는 경우 당신은 didSelectRowAtIndexPath
를 사용할 수 있습니다 didSelectRowAtIndexPath를 사용할 수 있습니다. 당신은 여전히 대상 ViewController에 selectedFeed라는 변수를 추가해야합니다. 이 옵션을 선택하면 스토리 보드에서 단편의 이름을 지정해야합니다.
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
// Youll need the name of your ViewController here to pass the variable
let destinationVC = "nameOfTheDestination_VC()"
destinationVC.chosenFeed = self.chosenFeed
//This is where you use the named segue from the Storyboard
destinationVC.performSegueWithIdentifier("segueName", sender: self)
}
그 제안 중 하나를 당신을 위해 무엇을 찾고있는 사람이어야한다. 모든 후, 당신은 여전히 당신은 단지 클래스 선언 위의 변수를 선언 할 필요가 (이 질문은 질문했다 후) 당신이 전역 변수를 필요로 결정하는 경우 : 예제 사진에서,
var chosenFeed : String?
class About_VC: UIViewController {
//code here
}
마지막 메모를하면 힘 풀기에 조심하여 게시하십시오. 건배!
출처
2016-08-16 05:27:37
bdc
전역을 사용하지 마십시오. 두 번째보기 컨트롤러에서 속성을 선언하고 발표하기 전에 해당 속성을 설정하십시오. 스토리 보드를 사용하고 있습니까? 그렇다면'prepareForSegueWithIdentifier : – Paulw11
'에서 이렇게 할 수 있습니다. @ Paulw11처럼 전역 변수를 사용하지 마십시오. 프로젝트가 너무 커지면 너무 많은 변수 이름과 혼동되어 개발하기에 좋지 않습니다. 변수가이 두 개의 다른보기 컨트롤러 사이에서만 사용됩니까? – jo3birdtalk