我的SplitView的DetailView有一个带注释的地图。单击Annotation后,整个窗口(而不仅仅是DetailView)应转到另一个视图。不幸的是,这不起作用。
这就是我在AppDelegate中创建NavigationController的方法
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
[self.window addSubview:navigationController.view];
这就是我创建SplitView的方法
left = [[MapSplitViewLeft alloc] initWithStyle:UITableViewStylePlain];
right = [[MapViewController alloc] init];
splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = [NSArray arrayWithObjects:left,right, nil];
self.view = splitViewController.view;
left.right = right;
[left release];
[right release];
这就是点击注释时所调用的内容:
- (void)showDetails:(id)sender {
NSLog(@"Yes it works");
VenueViewController *vviewcontroller = [[VenueViewController alloc]
initWithNibName:@"VenueViewController" bundle:[NSBundle mainBundle]];
AppDelegate *del = (AppDelegate *)[UIApplication sharedApplication].delegate;
[del.navigationController pushViewController:vviewcontroller animated:YES];
}
当我点击Annotation时,我只得到“Yes it works”,但没有其他事情发生。 非常感谢任何建议。
答案 0 :(得分:0)
每个UIViewController都有属性“navigationController”。尝试使用当前的ViewController推送新的Viewcontroller。
[self.navigationController pushViewController:vviewcontroller animated:YES];
编辑:对不起,你的意思是整个窗口!我认为这不会奏效。
edit2:也许这个答案可以帮助你how to add a view over window in uiviewcontroller但我认为那个视图不在你的navigationController-Stack上