我(希望)有一个小问题。 rightCalloutAccessoryView按钮方法。我尝试将navigationcontroller推到another viewcontroller,但不能正常工作。我总是黑屏。 navigationBar被禁用

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
// ... code ...
        pinAnnotationView.canShowCallout = YES;
        UIButton *detailButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
        [detailButton addTarget:self action:@selector(showDetailView:) forControlEvents:UIControlEventTouchUpInside];
        pinAnnotationView.rightCalloutAccessoryView=detailButton;
// ... code ...
}


按钮:

-(IBAction)showDetailView:(UIButton *)sender
{
    InfoViewController *infoView = [[InfoViewController alloc] init];
    [self.navigationController pushViewController:infoView animated:YES];

    NSLog(@"pushed Button!!!!!!");

}


我的目标:ViewController按下detailButton并按下InfoViewController

也许那只是一个小错误,我没有发现。

最佳答案

如果您的InfoViewController位于情节提要中,则需要获取该内容,而不是使用alloc init创建一个新的内容。 InfoViewController在情节提要中需要一个标识符,然后可以实例化它:

InfoViewController *infoView = [self.storyboard instantiateViewControllerWithIdentifier:@"InfoViewController"];

关于ios - Navigationcontroller工作不正常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14872455/

10-13 04:02