UISplitViewController推送多个详细视图iPad?

Posted

技术标签:

【中文标题】UISplitViewController推送多个详细视图iPad?【英文标题】:UISplitViewController push multiple detail views iPad? 【发布时间】:2012-05-26 04:40:46 【问题描述】:

我需要在 splitView 上的 detailViewController 上加载多个 viewController。 somethingLike

当闹钟打开时,我可以在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 ,每个都有不同的视图控制器。

希望我能得到一些帮助!

【问题讨论】:

【参考方案1】:

我正在寻找类似问题的解决方案。在我的情况下,我希望 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”

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

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

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

希望对你有帮助

【讨论】:

不错的解决方案...我喜欢它【参考方案2】:

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

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

谢谢

【讨论】:

请帮助我如何在 ipad 中使用 UIspliteviewcontroler。现在我想添加 2 UItableview。当我单击左侧 UItableview 时,我想显示右侧 UItableview。我怎样才能做到这一点。请给我一些想法。在屏幕截图上方,您是如何做到的。请告诉我。提前致谢 @sathis 只需为您的两个视图控制器创建对象并将其添加到 UISplitViewController。 self.splitViewController=[[UISplitViewController alloc]init]; splitViewController.viewControllers=[NSArray arrayWithObjects: TableViewController1,TableViewController2, nil]; 然后 [sef.window addSubView:self.splitViewController.view] 在你的应用委托中【参考方案3】:

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

【讨论】:

以上是关于UISplitViewController推送多个详细视图iPad?的主要内容,如果未能解决你的问题,请参考以下文章

从 UITabBarController 推送的 UISplitViewController

在 iPhone 上使用 UISplitViewController 时如何实现推送导航?

UISplitViewController 推送新的细节控制器,不更新侧面细节

iOS UISplitViewController 的 Popover 控制器按钮在以纵向模式推送新视图控制器后消失

苹果对 UISplitViewController 的看法?

UISplitViewController - 带有 UINavigationController 的多个细节视图