당신에게 popOver Tableview 컨트롤러를 제공하는 앱이 있습니다. 이 popOver에는 n 개의 셀이 있습니다. Popover의 테이블 셀 중 하나를 건드릴 때마다 메인 뷰에서 함수를 호출 할 수 있어야합니다. 그 일을 어떻게 하죠? 이 콘솔을 셀의 텍스트를 인쇄합니다,하지만 난 할 수 있어야Popover UITableViewController mainView에서 트리거 액션
여기- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Cell check %@", [totalArray objectAtIndex:indexPath.row]);
[self dismissPopoverAnimated:YES];
}
그것은 너무 한 번 세포가 접촉하는 팝 오버를 기각 할 것이 좋을 것이다 .... 그 셀 텍스트를 메인 뷰로 다시 넘겨줍니다 ... 오 그래, [self dismisspopoveranimated : 예]가 작동하지 않습니다 ...
좋은 대답입니다. 블록 사용에 대해 알고 싶습니다. 나 한테 뭔가 제안 해 줄래? –
이 접근법에 대한 블록 사용의 요점은 위임 프로토콜을 생성하고이를 테이블 뷰 클래스에 전달하는 대신 블록 유형을 typedef하고 해당 유형의 블록을 테이블 뷰 클래스에 전달한다는 것입니다. 테이블 뷰 클래스가 "주"뷰 컨트롤러를 다시 호출해야 할 때 대리자 개체에서 대리자 메서드를 호출하는 대신 단순히 블록을 호출합니다. Objective-C 블록을 소개하는 가장 좋은 방법 중 하나는 http://thirdcog.eu/pwcblocks/입니다. – erikprice
고맙습니다. 예를 들어, 셀 내에서 블록 속성을 만들 수 있습니다. 그런 다음 tableview 컨트롤러에서 해당 블록 속성에서 메서드를 설정할 수 있습니다. 그런 다음 셀에서 컨트롤러로 데이터를 전달할 때 셀에서 해당 블록 메서드를 호출 할 수 있습니다. 맞아? 특정 셀을 업데이트하는 데 사용할 수있는 행 인덱스는 어떻습니까? 블록 속성에 관해서는 복사 정책으로 정의하는 것이 옳은가요? 추신 나는 그것이 매우 좋기 때문에 당신의 대답을지지했다. –