我目前有一个MasterDetail视图应用,我想添加一个标签栏。我已成功将标签栏添加到Master tableview,并且我将表视图设置为另一个标签。这是有效的,但我的问题是:
如果我想在另一个标签上有另一个MasterDetail View,我会将SplitView控制器添加到标签栏控制器吗?或者我只是添加一个表视图控制器,将其大小调整为Master,然后添加UIView并将其调整为详细信息并通过segue推送所有数据?
可能是一个愚蠢的问题,但我还没有看到任何答案。
*的 修改 *
到目前为止,这是我的AppDelegate.m的内容:
#import "AppDelegate.h"
#import "LeftViewController.h"
#import "RightViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
UINavigationController *leftNavController = [(UITabBarController *)splitViewController.viewControllers[0] viewControllers][0];
LeftViewController *leftViewController = (LeftViewController *)[leftNavController topViewController];
UINavigationController *rightNavController = [splitViewController.viewControllers objectAtIndex:1];
RightViewController *rightViewController = (RightViewController *)[rightNavController topViewController];
Player *selectedPlayer = [[leftViewController players]objectAtIndex:0];
[rightViewController setPlayer:selectedPlayer];
leftViewController.delegate = rightViewController;
return YES;
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end
答案 0 :(得分:0)
您的UITabBarController
应该是应用中的根视图控制器,然后每个标签栏viewControllers
可以是UISplitViewController
或任何适合您需要的标签栏。
我会给你看一个故事板的图片,但是它上面有很多内容可以告诉你发生了什么!
希望有所帮助。
- 更新 -
它不一定非常容易,但你应该能够以最少的工作完成你的目标。可以移动视图控制器,而无需重做应用程序。请参考以下示例,看看它是否有帮助。基本上,您需要UITabBarController
作为根视图控制器,并且可以将拆分视图添加到其中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.tabController = [[UITabBarController alloc] init];
self.splitView = [[UISplitViewController alloc] init];
self.tabController.viewControllers = @[self.splitView];
self.window.rootViewController = tabController;
return YES;
}
显然你的代码会有所不同,但这个基本的例子应该让你朝着正确的方向前进。