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 控制器按钮在以纵向模式推送新视图控制器后消失