我正在尝试从委托方法didSelectAnnotationView创建一个ViewController。 我有以下代码:
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
DestinationViewController *destinationViewController = [[DestinationViewController alloc] init];
NSNumber *mynumberId = [NSNumber numberWithInt:1];
destinationViewController.mynumberId = mynumberId;
[self.navigationController pushViewController:destinationViewController animated:YES];
}
点击Annotation后,我看到一个带有导航栏的黑色ViewController屏幕。但是日志告诉我所有内容都正确加载。所以看起来我的Destination ViewController就在后台。
答案 0 :(得分:0)
如果从Nib创建VC,则需要使用initWithNibName:而不仅仅是init。
如果以编程方式加载视图,则需要检查viewDidLoad方法。
这不是mapKit问题,但您没有按照自己的方式加载VC及其视图。
答案 1 :(得分:0)
我已经在Apple开发者网站上进行过研究,并找到了我的问题的答案。我正在使用Storyboard,这里是Apple的代码片段:
- (IBAction)presentSpecialViewController:(id)sender {
UIStoryboard *storyboard = self.storyboard;
SpecialViewController *svc = [storyboard instantiateViewControllerWithIdentifier:@"SpecialViewController"];
// configure the new view controller explicitly here.
[self presentViewController:svc animated:YES completion:nil];
}
在这里可以找到有关View Controller Programming的更多信息的链接: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/UsingViewControllersinYourApplication/UsingViewControllersinYourApplication.html