Iphone 在ipad中从LeftSideView控制器演示ModalView

Iphone 在ipad中从LeftSideView控制器演示ModalView,iphone,objective-c,ios,ipad,Iphone,Objective C,Ios,Ipad,我在我的项目中实现了一个分割视图。我的左侧视图包含一个tableview和一个按钮 在点击那个比特顿之后,我展示了莫达尔维 它在横向模式下工作良好,但在纵向模式下,视图显示与左侧帧视图相同,而不是在全屏上 它在横向和纵向模式下也适用于ios6 您可以在详细视图控制器中注册通知,然后在需要显示模态视图控制器时从根目录发布通知 假设您使用的是ARC。在拆分控制器中,左视图控制器称为根控制器,右视图控制器称为细节控制器 在detail controller中,您需要实现注册和删除通知的代码 - (vo

我在我的项目中实现了一个分割视图。我的左侧视图包含一个tableview和一个按钮

在点击那个比特顿之后,我展示了莫达尔维

它在横向模式下工作良好,但在纵向模式下,视图显示与左侧帧视图相同,而不是在全屏上


它在横向和纵向模式下也适用于ios6

您可以在详细视图控制器中注册通知,然后在需要显示模态视图控制器时从根目录发布通知

假设您使用的是ARC。在拆分控制器中,左视图控制器称为根控制器,右视图控制器称为细节控制器

在detail controller中,您需要实现注册和删除通知的代码

- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(displayModalController) name:@"DisplayModalControllerNotification" object:nil];

}

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)displayModalController {

    UIViewController *myController = [[UIViewController alloc] initWithNibName:@"MyController" bundle:nil];
    [self presentViewController:myController animated:YES completion:^{
        // code to be executed after completition
    }];
}
现在,根控制器中有了这段代码,您只需在需要时通过这行代码调用它:

        [[NSNotificationCenter defaultCenter] postNotificationName:@"DisplayModalControllerNotification" object:nil];

这是一个基本示例,可根据您的需要进行修改,例如,如果您需要发送一些对象,并在init上向您的模态视图控制器发送通知,等等。

感谢您的重播!我尝试了你的代码,但崩溃了&出现了以下错误;***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIPopoverController\u PresentPopOverBySlidgin:fromEdge:ofView:animated:stateOnly:notifyDelegate::无法从没有窗口的视图中显示PopOver。”嗯,这很奇怪,因为我没有在任何地方使用UIPopOverController,所以它一定在您的代码中的某个地方。