저는 스토리 보드로 샘플 앱을 작업하고 있습니다. popoverview를 만들었을 때 나는 'Embed in navigation controller
'과 같은 방식으로 사용했습니다.스토리 보드에서 Popoverview는 대표단을받지 않습니다.
그러나 큰 문제는 delegate
사용 중입니다. 그것은 popover 뷰에 위임하지 마십시오.
[ViweController.m]
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([[segue identifier] isEqualToString:@"PopRootViewController"]){
NSLog(@"[segue destinationViewController] :%@", [segue destinationViewController]);
rootViewController = [[RootViewController alloc] init];
rootViewController.delegate = (id)self;
NSLog(@"%@---%@---%@", rootViewController.delegate, self, rootViewController);
}
}
-(void)didTap22 {
NSLog(@"delegate step 1 success!! ");
}
이 같은이 소스의 결과 :
[segue destinationViewController] :<UINavigationController: 0x88660a0>
<ViewController: 0x6b795e0>---<ViewController: 0x6b795e0>---<RootViewController: 0x6b7da60>
하지만 [RootViewController] 위임을받지 않습니다.
[RootViewController.m]
@implementation RootViewController
@synthesize items, delegate;
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
....
self.items = mutableFetchResults;
NSLog(@"333333..... %@, ....... %@", self.delegate, self);
}
결과 :
333333..... (null), ....... <RootViewController: 0x8866520>
RootViewController의 대표단은 null입니다. 해결 방법을 찾을 수 없습니다.
아무도 도와주세요!
설명해야 할'rootViewController.delegate = (id) self;'행 앞에 NSLog (@ "대리자"를 설정하려고합니다.);를 입력하십시오. –
죄송하지만 귀하의 의견을 이해할 수 없습니다. 내 잘못은 뭐니? – hyekyung
위임자를 설정할 때 viewWillAppear이 이미 호출되었음을 나타내야합니다. –