2014-07-26 5 views
0

위임을 사용하여 ViewController의 세그먼트를 AppDelegate에서 호출하려고합니다. segue가 수행되기 전에 xmppRoster이 저장되었는지 확인하고 싶습니다.위임을 사용하여 AppDelegate에서 ViewController의 segue를 수행하지 못했습니다.

"때문에 캐치되지 않는 예외 'NSInvalidArgumentException'응용 프로그램 종료 이유는 : '수신기() 식별자를 더 SEGUE이 없다'segueForList ''"라는 오류가 난

을 코드 [self performSegueWithIdentifier:@"segueForList" sender:self]이 위임자를 사용하지 않을 때 작동하기 때문에 segueForList은 올바른 하위 식별자입니다.

SEGUE는 스토리 보드에 내장와의 ViewController에 연결되어, 나는 이미지가 지금 내 평판이 충분하지 않습니다 원인 미안

AppDelegate.h를 게시 할 수 없습니다 : AppDelegate에에서

@protocol friendListSegue 
- (void) ListSegue; 
@end 

@interface AppDelegate : UIResponder <UIApplicationDelegate> 
@property (assign,nonatomic) id<friendListSegue> delegate; 
@end 

- (void)xmppRosterDidEndPopulating:(XMPPRoster *)sender 
{ 
    ViewController * view0=[[ViewController alloc] init]; 
    self.delegate = view0; 
    [self.delegate ListSegue]; 
    NSLog(@"didStored"); 
} 

ViewController.m :

01하는 .m,이 방법은 자동 시스템은 저장을 완료하면 불려
- (void) ListSegue{ 
    NSLog(@"segue_List"); 
    [self performSegueWithIdentifier:@"segueForList" sender:self]; 
} 
+0

ViewController는 어디에서 제조 되었습니까? 스토리 보드 또는 xib에서? 코드? – rdelmar

+0

Segues는 스토리 보드에서 작동합니다. 여기에서는 코드에서보기 컨트롤러를 초기화하고 스토리 보드에서와 같이 작동 할 것으로 예상합니다. – duci9y

+0

segue가 스토리 보드에 내장되어 ViewController에 연결되어있어 평판이 충분하지 않아 이미지를 게시 할 수 없습니다. 죄송합니다. – MCTam

답변

0

새로운 ViewController를 할당하고 초기화해도 스토리 보드에있는 데이터가 제공되지 않습니다. 펜촉에서 ViewController를로드해야합니다.

How can I load storyboard programmatically from class?

아직도 난 당신이 무슨 일을하는지 질문해야합니다. segue를 수행하기 전에 명부가 완료 될 때까지 기다리기를 원한다고해도 segue가 실제로있는 객체에서 segue를 수행 할 수 있도록 xmppRoster의 대리인을 segue 수행하는 ViewController를 만드는 것이 더 좋습니다.

+0

xmppRosterDidEndPopulating 메소드는 AppDelegate에서만 작동하지만 어떻게 작동하게해야 할 지 모르겠습니다. ViewController에서 "xmppRoster의 대리인을 segue 수행하는 ViewController 만들기"라고하는 경우 – MCTam

+0

Segue가있는 ViewController도 XMPPRosterDelegate 프로토콜을 준수한 다음 XMPPRoster의 multicastDelefgate에 추가해야합니다. – Literphor

+0

매우 유용한 코멘트, 그것은 잘 작동합니다, 많이 감사합니다. – MCTam

관련 문제