1

我在视图(MapView)中打开一个带有视图(DetailView)的popOver。它工作正常。

但是在我的详细视图中有一个按钮(反馈)。所以我想在点击按钮时推送另一个视图(反馈表单)。

我试过了,但什么也没发生。

我可以将视图推送到弹出框内吗?

我的代码如下:

// MapView.m

detailsView *popUp=[[detailsView alloc] initWithNibName:@"detailsView_ipad" bundle:nil];


        popView = [[UIPopoverController alloc]initWithContentViewController:popUp];

        popView.delegate =self;

        [popView setPopoverContentSize:CGSizeMake(600, 500)];

 [popView presentPopoverFromRect:control.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}  


//Detailview.m

-(IBAction)openFeedbackForm:(id)sender {

fbView = [[deatailsFeedback alloc]
                  initWithNibName:@"deatailsFeedback_ipad" bundle:nil];
 [self.navigationController pushViewController:fbView animated:YES];
}
4

2 回答 2

1

要实现这一点,您的 detailsView 应该是一个具有原始 detailsView 的根控制器的 Navigation 控制器。

这样,当您弹出 navigationController 时,您可以从您的 detailsView 执行推送,这只会影响 popOver 视图

    detailsView *popUpView=[[detailsView alloc] initWithNibName:@"detailsView_ipad" bundle:nil];

    UINavigationController *popUpNavController = [[UINavigationController alloc] initWithRootViewController:popUpView];    

    popView = [[UIPopoverController alloc]initWithContentViewController:popUpNavController];

    popView.delegate =self;

    [popView setPopoverContentSize:CGSizeMake(600, 500)];

    [popView presentPopoverFromRect:control.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}


//Detailview.m

-(IBAction)openFeedbackForm:(id)sender {

    fbView = [[deatailsFeedback alloc]
              initWithNibName:@"deatailsFeedback_ipad" bundle:nil];
    [self.navigationController pushViewController:fbView animated:YES];
}
于 2013-01-24T15:25:31.903 回答
0

如果我正确理解您的代码,openFeedForm IBAction 方法在 Detailview.m 中吗?意思是代码的第一部分与底部的代码不同?

如果是这样,由于 Detailview 本身不在 navigationController 中,它不会向其不存在的导航控制器推送任何内容。

您要做的是让 MapView 在其导航控制器中推送新视图。

旁注:由于您将 MapView 中的 popUp 委托设置为(self),因此应在 MapView 中定义 IBAction 方法

(这是假设我关于理解您的代码的第一个陈述是正确的)

于 2013-01-24T06:30:26.270 回答