0

我正在尝试编写 iPad 应用程序。

我有masterViewdetailView(我的手工 splitView)UIViewControllerparentViewController(全屏)。此外,我还有一个带有类和 xib 的单独视图(例如moreDetailView),我想将其显示为模态。

masterViewUITableViewdetailViewUICollectionView. 他们都有自己的课程和xib。在detailView中有几个项目。

在我的didSelectItemAtIndexPath: of detailView我想显示moreDetailView

那么,我该怎么做呢?以及如何在parentViewController中显示它,而不是detailView中。

希望我的问题可以理解。

4

3 回答 3

0
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    UIViewController *moreDetailViewController = [[MoreDetailViewController alloc] init];
    [moreDetailViewController setModalPresentationStyle:UIModalPresentationFormSheet]; //or style depending on what you want
    [moreDetailViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];

    [self presentViewController:moreDetailViewController animated:YES completion:^{
        //stuff you want to do after the viewController has been presented
    }];
}
于 2013-04-10T10:15:34.150 回答
0

您正在初始化您的masterviewdetailviewparentview. 要访问,parentcontroller您可以将属性声明detailcontroller

UIViewController *parent;

在初始化时你可以做

detailController.parent=self;

在显示模态时你可以做

[parent presentModal]; //instead of [self presentModal];

我希望以上内容对您有用,但您需要更正语法。

于 2013-04-10T09:48:45.650 回答
0

下面的代码将在 splitView 顶部的模态表单中显示您的控制器(您可以使用 setModalPresentationStyle 进行更改)。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    UIViewController *moreDetailViewController = [[MoreDetailViewController alloc] init];
    [moreDetailViewController setModalPresentationStyle:UIModalPresentationFormSheet]; //or style depending on what you want
    [moreDetailViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];

    [self presentViewController:moreDetailViewController animated:YES completion:^{
        //stuff you want to do after the viewController has been presented
    }]; }
于 2013-04-10T09:59:37.487 回答