Ios 在选项卡栏中嵌入MasterDetail ViewController
我目前有一个MasterDetail视图应用程序,我想在其中添加一个选项卡栏。我已成功地将选项卡栏添加到主表视图中,并且将一个表视图设置为另一个选项卡。这是可行的,但我的问题是: 如果我想在另一个选项卡上有另一个MasterDetail视图,我会将SplitView控制器添加到选项卡栏控制器吗?或者我只是添加一个表视图控制器,将其大小设置为Master,然后添加一个UIView,将其大小设置为detail,并通过segue推送所有数据 这可能是个愚蠢的问题,但我还没有看到任何答案 *编辑* 以下是迄今为止我的AppDelegate.m的内容:Ios 在选项卡栏中嵌入MasterDetail ViewController,ios,objective-c,ipad,uisplitviewcontroller,uistoryboard,Ios,Objective C,Ipad,Uisplitviewcontroller,Uistoryboard,我目前有一个MasterDetail视图应用程序,我想在其中添加一个选项卡栏。我已成功地将选项卡栏添加到主表视图中,并且将一个表视图设置为另一个选项卡。这是可行的,但我的问题是: 如果我想在另一个选项卡上有另一个MasterDetail视图,我会将SplitView控制器添加到选项卡栏控制器吗?或者我只是添加一个表视图控制器,将其大小设置为Master,然后添加一个UIView,将其大小设置为detail,并通过segue推送所有数据 这可能是个愚蠢的问题,但我还没有看到任何答案 *编辑* 以下
#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
您的
UITabBarController
应该是应用程序中的根视图控制器,然后每个选项卡栏viewcontroller
可以是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;
}
显然,您的代码会有所不同,但这个基本示例应该让您朝着正确的方向前进。好吧,我的应用程序已经完成了一半,所以我不想重新开始。这是否像将
UISplitViewController*splitviewcontroller=(UISplitViewController*)self.window.rootViewController
更改为UITabBarController一样简单?如果我已将SplitViewController移出RootView,那么理想的放置位置是哪里?@CaptJak更新了答案。希望这能有所帮助。让我知道如果!对不起,现在我只是糊涂了!我添加了我当前的AppDelegate.m,以向您展示我现在正在使用的功能。您所展示的代码将如何工作?您使用的是故事板还是笔尖?如果是这样的话,这将变得容易得多。故事板,很抱歉之前没有提到