【问题标题】:UISplitViewController Getting Detail VC Only in Portrait ViewUISplitViewController 仅在纵向视图中获取详细信息 VC
【发布时间】:2014-11-13 14:22:34
【问题描述】:

我最近从我的应用程序中删除了标签栏,以支持我自己编写的“滑出”样式菜单。它似乎工作得很好,除了我在应用程序中使用的一个拆分视图控制器在 iPad 上无法正常工作(横向就好)。我看到的问题是细节 VC ONLY 被加载到纵向视图中,两个 VC 在横向视图中都正确加载。这是在 iOS7 上。

所以,这是我正在使用的代码。此代码已从 AppDelegate(以前)移至根 VC。有一些变化,但相对较小。它在标签栏上工作得很好,但是使用这个新的滑出菜单(即表格视图)我遇到了这个问题。我只包括我认为相关的代码部分。

AdminMasterViewController *adminMasterVC = [[AdminMasterViewController alloc] init];
UINavigationController *adminMasterNav = [[UINavigationController alloc] init];
adminMasterNav.viewControllers = [NSArray arrayWithObjects:adminMasterVC, nil];
adminMasterNav.view.frame = CGRectMake(0,0,[Utility screenWidth],[Utility screenHeight]);

AdminDetailViewController *adminDetailVC = [[AdminDetailViewController alloc] init];
UINavigationController *adminDetailNav = [[UINavigationController alloc] init];
adminDetailNav.viewControllers = [NSArray arrayWithObjects:adminDetailVC, nil];
adminDetailNav.view.frame = CGRectMake(0,0,[Utility screenWidth],[Utility screenHeight]);

UISplitViewController *adminSplitVC = [[UISplitViewController alloc] init];
adminSplitVC.viewControllers = [NSArray arrayWithObjects: adminMasterNav, adminDetailNav, nil];
adminSplitVC.delegate = self;
adminSplitVC.title = @"Admin";
adminSplitVC.view.frame = CGRectMake(0,0,[Utility screenWidth],[Utility screenHeight]);

vcArray = [NSArray arrayWithObjects:homeVC, adminSplitVC, expressiveNav, receptiveNav, typerNav, nil];

(最后一行构建项目中所有 VC 的数组;创建这些 VC 的代码已省略)。

选择 VC 后,它会显示为子 VC,如下所示:

UIViewController *vc;
if ([selected isEqualToString:@"Home"])
{
    vc = [vcArray objectAtIndex:VCHome];
}
else if ([selected isEqualToString:@"Administrator"])
{
    vc = [vcArray objectAtIndex:VCAdmin];
}

... (others listed here)

[self.view addSubview:vc.view];
[self addChildViewController:vc];
[vc didMoveToParentViewController:self];

根据我的阅读,不使用标签栏可能存在一些问题,但这些文章令人困惑,因为其中很多都过时了。我将不胜感激有关此问题的任何意见或建议,因为我已经阅读了我能找到的所有内容并且真的不知道从这里去哪里。 TIA。

【问题讨论】:

    标签: ios uisplitviewcontroller


    【解决方案1】:

    经过几天的阅读和尝试不同的事情,在发布问题一个小时后,我解决了这个问题。以防万一其他人遇到同样的问题,以下是解决方案:

    我将 UISplitViewController 子类化并使其成为自己的委托。

    那么,这个委托方法就解决了:

    - (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
    {
        return NO;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2010-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多