2011-11-04 50 views
2

我正在使用故事板的示例應用程序。 當做popoverview,我使用的方式 - 'Embed in navigation controller'。在故事板中,Popoverview不會收到代表團

但我遇到了delegate用法的大麻煩。 這是不委託popover視圖的。

Xcode - Embedded Menu

[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的代表團爲空。 我找不到解決方案。

有人幫助我,請!

+0

把一個'NSLog(@「約設置委託」);'在行'rootViewController.delegate =(id)self;'之前,這應該解釋它。 –

+0

對不起,但我不明白你的意見。我的錯是什麼? – hyekyung

+0

它應該顯示viewWillAppear已經在您設置委託時被調用。 –

回答

1

我懷疑你沒有在視圖控制器的類聲明中聲明你的委託UIPopoverControllerDelegate。

此行是可疑的:

rootViewController.delegate = (id)self; 

你不需要正常施放自我,如果你做我提的聲明。