2014-10-02 2 views
-1

안녕하세요 저는 Obj 프로그래밍에 초보자입니다. 동일한 뷰 컨트롤러에서 "자체 세그로그"(동일한보기 컨트롤러에 연결)를 만들었습니다. 이제 내 문제는, prepareForSegue 메서드에서 몇 가지 매개 변수를 설정하고 있지만 어떻게 든이 메서드가 호출되기 전에 segue 이미 발생합니다 (심지어 "performSeguewithIdentifier"호출하지 오전). 나는 segue가 세포와 연관되어 있기 때문에 이것이 가능하다는 것을 이해합니다. 하지만 난은 "자기 SEGUE"를 만들 수있는 다른 방법을 찾을 수 없습니다동일한보기에 Segue prepareforsegue가 호출되기 전에 컨트롤러가로드됩니다.

help.Btw 내가 사용하십시오 xcode6 .. 지금은 변함없이 "isContainerSegue"가 실행됩니다

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
_selctdObj = [avObjArray objectAtIndex:indexPath.row]; 
if([_selctdObj isContainer]) 
    { 
    [self performSegueWithIdentifier:@"isContainerSegue" sender:self]; 
    } 
else 
    { 
    [self performSegueWithIdentifier:@"isItemSegue" sender:self]; 
    } 
} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
if ([[segue identifier] isEqualToString:@"isContainerSegue"]) { 
    // Get destination view 
    serverBrowseVC *sbvc = [segue destinationViewController]; 
    [sbvc setServerSelected:_serverSelected]; 
    [sbvc setBrowseObjID:_selctdObj]; 

} 
} 

, 심지어 객체되지 않은 컨테이너. 나는 또한 당신이 performSegueWithIdentifier를 호출하지 않은 말했다 "isContainerSegue는"실행 가져옵니다

//[self performSegueWithIdentifier:@"isContainerSegue" sender:self]; 

그러나 모든 시간 ..

+0

이 셀프 세그먼트의 목적은 무엇입니까? 무엇을 성취하려고합니까? – rdelmar

+0

Upnp 컨테이너를 탐색하려고합니다 (폴더 찾아보기와 관련 될 수 있습니다). 그래서 재생 가능한 항목에 도달 할 때까지 재귀 적으로 찾아야합니다. –

+0

문제점을 재현 할 수 없습니다. prepareForSegue에서 매개 변수를 설정할 수 있으며 대상 컨트롤러에서 제대로 작동합니다. prepareForSegue에 넣는 코드와 대상 뷰 컨트롤러에서 이러한 매개 변수를 사용하는 방법을 표시해야합니다. – rdelmar

답변

0

을 주석했지만, 당신은 수 있습니다. 셀에서 세구 (segue)를 연결했다면 안됩니다. didSelectRowAtIndexPath를 전혀 구현하지 말고 prepareForSegue 만 구현하면됩니다. prepareForSegue : sender :의 sender 인수 (보낸 사람이 셀이 됨)에서 indexPath를 가져올 수 있습니다. "if [_selctdObj isContainer]"절에 문제가있는 경우 isContainer가 게시하는 항목을 게시해야합니다.

+0

@rdelmar에게 감사의 말을 남겼습니다. 문제는 정확히, 나는 "[self performSegueWithIdentifier : @"isContainerSegue "sender : self]"를 호출하지 않으면 segue가 자동으로 실행되기를 원하지 않습니다. 하지만 xcode 6 셀프 segue 크레타 수있는 유일한 방법은 segue 셀과 연결하는 것입니다. 언제 내가 "segue"옵션을 얻지 못하는 셀 이외의 다른 스토리 보드에 ViewController 아이콘에서 컨트롤을 제어 할 때. –

+0

@AkshayVernekar, 그럼 segue를 사용하지 마십시오. 컨트롤러의 새 인스턴스를 인스턴스화 한 다음 밀어 넣거나 제시하면됩니다. 당신이 segue로 이것을 할 특별한 이유는 없습니다. – rdelmar

+0

고맙습니다 @rdelmar .. 내가 그걸 할 방법이 맞춰봐. –

관련 문제