2013-03-22 4 views
1

에있는 UIViewController를 가져옵니다 내가 가진 "MAINVIEW"그리고이 일 UITableView 명 "tblLists"
tblListscustomCell 생성라는 이름의 한 UIViewController - "customCellList을".의 TableView의 CustomCell

제 질문은 MainView의 인스턴스 (자체)를 customCellList 클래스로 가져올 수 있습니까?

나는 수퍼 일에 시도했지만 MainView을 얻을 수 없습니다. 프로토콜없이 이것을 달성하고 싶습니다.

그래서이 당신의 도움이 필요합니다. 당신이 요구하는 어떤

+4

왜 테이블보기에 대한 참조를 얻으시겠습니까? 나는 이것이 아마도 좋은 디자인이 아닐 것이라고 생각합니다. – rdelmar

+1

셀은 안에있는보기 컨트롤러에 액세스 할 필요가 없습니다. 무엇을 성취하려고합니까? 가장 좋은 방법이 있습니다. – rmaddy

+1

* * 프로토콜을 사용하는 것이 ** Objective-c에서 할 수있는 방법이라고 생각합니다. 죄송합니다.별로 도움이되지 않습니다. –

답변

2

은 당신이 주변에 다른 방법을 찾아야한다, 좋은 생각이 아니다. MCV 패턴이 깨집니다. 만약 메모리 우려 ARC를 사용 아이폰 OS> = 5는 테이블 뷰 자체 약한 참조를 생성하고 그것의 대리인 또는 데이터 소스 속성으로보기 컨트롤러를 얻을 수 타겟팅 걱정하는 경우로서 은 (물론 VC가 있는지 그들 중 하나). 또는 VC 자체에 대한 약한 참조를 만들 수 있습니다.
으로 더 나은 주위에 다른 방법을 찾아, 좋은 생각이 아니다 코멘트에 지적했다. 당신이 세포 가치를 업데이 트 해야하는 경우에는 tableview 데이터를 다시로드하는 방법이 많이 있습니다! 모델에서 VC에 대해 KVO, 알림, 위임 등을 사용함으로써 셀에서 이상한 참조를 포함하지 않고 테이블 뷰를 다시로드 할 수 있습니다.
희망이 도움이됩니다.

7

당신은 뷰 컨트롤러에 대한 액세스 권한을 얻기 위해 응답자 체인을 사용할 수 있습니다. 있는 UITableViewCell 하위 클래스가 customCell 클래스입니다 가정하면, 다음과 같은 방법이 작업을 수행해야합니다

@implementation customCell 

- (UIViewController *)getViewController 
{ 
    id vc = [self nextResponder]; 
    while(![vc isKindOfClass:[UIViewController class]] && vc!=nil) 
    { 
     vc = [vc nextResponder]; 
    } 

    return vc; 
} 

@end 

위의 코드는 Sensible TableView 프레임 워크의 예의입니다. 당신이 MVC를 중단하고자 할 때 .. 그 드문 시간에 대한

UIViewController *controller = [UIApplication sharedApplication].keyWindow.rootViewController; 
+2

셀에 대한보기 컨트롤러를 가져 오는 코드가 포함되어 있으면 해당 이름이 * Sensible * –

0

또한 당신은 rootViewController에 액세스 할 수 있습니다. Swift 2에 업데이트 됨

func visibleVC() -> UIViewController? { 
     if let navVC: UINavigationController = UIApplication.sharedApplication().keyWindow?.rootViewController as? UINavigationController { 
      if let vc: UIViewController = navVC.visibleViewController as? MyViewControllerClass { 
       return vc 
      } 
     } 
     return nil 
    } 
1

를 이것은 당신의 창에서 rootVC으로 탐색 컨트롤러를 사용하는 가정

+0

에서 변경되어야합니다. (Y) – KDeogharkar

+0

안녕하세요 @KDeogharkar, 올바른 답변을 표시해주세요.http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – emdog4

관련 문제