0

我需要在 splitView 上的 detailViewController 上加载多个 viewController。就像是在此处输入图像描述

当警报打开时,我可以在detailView上推送相关的视图控制器。左侧视图是一个uitableview。

我的代码在 AppDelegate.m 上

#import "splitDetailViewController.h"
#import "splitTableViewController.h"

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
  {
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.

  splitTable=[[splitTableViewController alloc]initWithStyle:UITableViewStyleGrouped];
  UINavigationController *splitTableNav=[[UINavigationController alloc]initWithRootViewController:splitTable];

  splitDetails=[[splitDetailViewController alloc]initWithNibName:nil bundle:nil];
  UINavigationController *splitDetailNav=[[UINavigationController alloc]initWithRootViewController:splitDetails];


  self.splitViewController.delegate=splitDetails;

  splitViewController=[[UISplitViewController alloc]init];

  splitViewController.viewControllers=[NSArray arrayWithObjects:splitTableNav,splitDetailNav, nil];





  [self.window addSubview:splitViewController.view];
  self.window.backgroundColor = [UIColor whiteColor];
  [self.window makeKeyAndVisible];
  return YES;
  }

抱歉,这是我第一次开发 iPad 应用程序,对如何使用 splitview 有点困惑。我将如何在详细视图上调用多个 viewController。对于 timer、alarm、share ,每个都有不同的视图控制器。

希望我能得到一些帮助!

4

3 回答 3

4

我正在寻找类似问题的解决方案。在我的情况下,我希望 tableview 根据选择链接到多个详细视图。我可以将数据覆盖在一个视图控制器上,但正在寻求更好的解决方案。这就是我所做的。它比我迄今为止发现的一些复杂和过时的选项更简单,而且效果更好。

我只是在身份检查器中将情节提要 ID 提供给了我希望在详细视图(“第二个”)中显示的视图控制器,并且在 didSelectRowAtIndexPath 上我只是添加了:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];

    [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
 }

因此,当有人在主视图中按下单元格时,会推送详细视图。

一个简单的 if 语句可以切换显示哪个视图:

if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"Second Choice"]) {
    TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];

    [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
 } else if ([[self.selfRootMenuArray objectAtIndex:indexPath.row] isEqual: @"First Choice"]) {
     TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"first"];

     [[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];
 };

您可以简单地使用按钮、开关或其他任何东西来代替表格视图,但关键是通过在“身份检查器”中添加“故事板 ID”

并通过引用“故事板 ID”简单地实例化视图控制器,然后将其推送到索引 1(详细信息侧)的拆分视图控制器,它简单快捷

TimeDetailViewController *detail = [self.storyboard instantiateViewControllerWithIdentifier:@"second"];

[[self.splitViewController.viewControllers objectAtIndex:1] pushViewController:detail animated:YES];

希望能帮助到你

于 2013-04-13T01:56:36.853 回答
1

这是我的解决方案,希望对您有所帮助: https ://github.com/selfdealloc/MultipleDetailViewsUsingStoryboards

于 2013-07-30T16:50:16.580 回答
1

好的,我自己找到了一种解决方案,效果很好

http://kshitizghimire.com.np/uisplitviewcontroller-multipledetailviews-with-navigation-controller/

谢谢你

于 2012-05-26T06:43:49.703 回答