Mad*_*dav 28 uitabbarcontroller ipad uisplitviewcontroller iphone-sdk-3.2 uipopovercontroller
我处于一种情况,我需要从基于选项卡的应用程序开始,并且我需要一个或多个选项卡的拆分视图.但似乎拆分视图控制器对象无法添加到tabbarController中.(虽然tabbar对象可以添加到splitviewcontroller).
问题还可以看出:我在左侧部分有一个完整的屏幕我有一个表视图,当在表中选择任何行时,弹出框应该指向该行.现在,当弹出窗口中的任何行被选中时,此弹出窗口中的行将位于所选行的左下方(仅此行可见),而另一个弹出窗口将从所选行中出现.(面包屑导航类型)
我想我清楚地解释了什么.那么有任何想法或解决方法吗?
如果我不清楚我的问题,请告诉我.
谢谢,
Madhup
g_f*_*red 19
使用界面构建器,创建拆分视图控制器和标签栏控制器,并将它们链接到您的插座:
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@property (nonatomic, retain) IBOutlet UISplitViewController *splitViewController;
Run Code Online (Sandbox Code Playgroud)
在您的应用程序委托中didFinishLaunchingWithOption,将拆分视图控制器分配给选项卡栏控制器:
splitViewController.tabBarItem = [[[UITabBarItem alloc] initWithTitle:@"Title" image:nil tag:0] autorelease];
NSArray *controllers = [NSArray arrayWithObjects:splitViewController, /* other controllers go here */ nil];
tabBarController.viewControllers = controllers;
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
这将创建一个标签栏控制器(在这种情况下只有一个标签),可以在所有方向上正确显示.
我已经为UISplitViewController写了一个子类,它将监听设备方向的变化并相应地定位自己.通过这个类,我现在可以在UITabBarController中放置拆分视图,并且每个拆分视图在旋转时都会正常运行,即使它不是最前面的选项卡.我已经成功地在TexLege中部署了它并且它被批准在App Store中使用,但您的里程可能会有所不同.请参阅Github的存储库.
随意分叉和修改它,我总是有兴趣听取有关它的评论(或投诉). https://github.com/grgcombs/IntelligentSplitViewController
我做了一个示例应用程序.并发现我们可以通过编程方式执行以下操作:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
NSMutableArray *array = [NSMutableArray array];
NSMutableArray *tabArray = [NSMutableArray array];
UISplitViewController *splitViewConntroller = [[UISplitViewController alloc] init];
MainViewController *viewCont = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
[array addObject:viewCont];
[viewCont release];
viewCont = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
[array addObject:viewCont];
[viewCont release];
[splitViewConntroller setViewControllers:array];
[tabArray addObject:splitViewConntroller];
[splitViewConntroller release];
array = [NSMutableArray array];
splitViewConntroller = [[UISplitViewController alloc] init];
viewCont = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
[array addObject:viewCont];
[viewCont release];
viewCont = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
[array addObject:viewCont];
[viewCont release];
[splitViewConntroller setViewControllers:array];
[tabArray addObject:splitViewConntroller];
[splitViewConntroller release];
// Add the tab bar controller's current view as a subview of the window
[tabBarController setViewControllers:tabArray];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
42850 次 |
| 最近记录: |