2016-07-05 8 views
0

tableView의 셀을 클릭하면 segue를 수행하는 데 문제가 있습니다. 응용 프로그램에서 스토리 보드를 전혀 사용하지 않고 있습니다 (스토리 보드 파일 삭제). 어떻게이 부분을 수행 할 수 있는지 궁금합니다. 참고 :iOS Storyboard가없는 TableView 셀의 Swift Segue

  1. 내있는 tableView 그것을 표시의 ViewController가 아닌 다른 파일에 있습니다. 그래서 내의 ViewController에서 나는이 라인을 가지고 :

    있는 tableView = MyTableView하자 (restaurants_data : 레스토랑, 프레임 : CGRect(), 스타일 : .Plain) view.addSubview (있는 tableView) 그래서

  2. MyTableView.swift 이후를 ? 그래서

, 어떻게 수행 할 : 나는

self.navigationController .showViewController처럼 뭔가를 할 기운에 didSelectRowAtIndexPath 기능이있는 파일 (전무 destinationVC, 보낸 사람)입니다 내가 사용자 정의 TableView를 사용하고 있고 StoryBoard를 사용하지 않는다는 것을 감안할 때, 사용자가 셀을 클릭 할 때 segue? UIViewController에

controller.presentViewController (viewControllerToPresent : UIViewController에, 애니메이션 : 미리 감사드립니다

+0

'UITableView'를 서브 클래 싱하는 것은 권장하지 않을 수 있습니다 : http://stackoverflow.com/a/10250358/1305067. 'UITableView'를 캡슐화하고 싶다면 아마도 뷰 컨트롤러를 래핑하여 자식보기 컨트롤러가 원하는대로 할 수있는 것처럼보기에 추가하십시오. 'navigationController'에 접근하는 것은'MyTableView''''' 메소드에 인자로 넘겨 줘야합니다. 스토리 보드가 없으면, AFAIK는 없다. 보통의 pushViewController 메소드를 사용하면된다. – paulvs

답변

0

에 많은 초기화하기 VAR 컨트롤러를 당신의있는 tableView

내부의 ViewController에 대한 참조를 추가하고의 ViewController에서 그것을 초기화 BOOL을 , completion : block?>)

+0

위의 "didSelectRowAtIndexPath"메서드는 UITableView 클래스가 아니라 UITableViewController 내부에 있기 때문에 작동하지 않습니다. UITableView에는 presentViewController 메서드가 없습니다. – omzy

+0

그러나'viewControllerToPresent.navigationController'는'presentViewController' 메소드를 가지고 있습니다. – paulvs

+0

@paulvs하지만 viewControllerToPresent.navigationController.pesentViewController (viewControllerToPresent : viewControllerToPresent., animated : Bool, completion ..)를 호출하면 전혀 이해가 안 될 것입니다. – omzy