观察这个非常简单的UIViewController子类方法:
-(IBAction)launchSearch
{
OffersSearchController *search = [[OffersSearchController alloc]
initWithNibName:@"OffersSearchView" bundle:nil];
EverWondrAppDelegate *del = [UIApplication sharedApplication].delegate;
[del.navigationController pushViewController:search animated:YES];
[search release];
}
在我得到* del的行上,我收到的编译器警告是Type 'id <UIApplicationDelegate>' does not conform to the 'CLLocationManagerDelegate' protocol
。事实上,我的应用代表DOES符合该协议,而我在这里做的事与此无关。那个消息怎么了?
次要问题:有时我可以通过self.navigationController
访问我的navigationController,有时我不能,并且必须转到我的app delegate的属性来获取它,就像我在这里做的那样。任何关于为什么会这样做的提示都非常有用。
答案 0 :(得分:0)
试试这个:
EverWondrAppDelegate *del = (EverWondrAppDelegate *)[UIApplication sharedApplication].delegate;
关于你的第二个问题:不知道为什么会发生这种情况。