如何在Swift中以编程方式创建SplitViewController?

10

我需要执行哪些步骤?在Objective-C中,我们创建了一个rootViewControllerdetailViewController,然后将这些控制器添加到splitViewController中。例如:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];
    UISplitViewController *splitViewController = [[UISplitViewController alloc] init];
    MTTRootViewController *rootViewController = [[MTTRootViewController alloc] init];
    MTTDetailedViewController *detailedViewController = [[MTTDetailedViewController alloc]init];
    splitViewController.viewControllers = [NSArray arrayWithObjects:rootViewController, detailedViewController, nil];
    [self.window setRootViewController:(UIViewController*)splitViewController];
    [self.window makeKeyAndVisible];
    return YES;
}

我该如何在Swift中执行相同的操作?

2个回答

19

如果您想使用navigationController实现,请尝试以下操作:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
    self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
    self.window!.backgroundColor = UIColor.whiteColor()
    var splitViewController =  UISplitViewController()
    var rootViewController = RootViewController()
    var detailViewController = DetailViewController()
    var rootNavigationController = UINavigationController(rootViewController:rootViewController)
    var detailNavigationController = UINavigationController(rootViewController:detailViewController)
    splitViewController.viewControllers = [rootNavigationController,detailNavigationController]
    self.window!.rootViewController = splitViewController
    self.window!.makeKeyAndVisible()
    return true
}

4

一段时间后,我找到了答案:

首先需要创建根视图控制器(rootViewController)和详细视图控制器(detailViewController)。例如,根视图控制器可以继承自UITableViewController,而详细视图控制器可以继承自UIViewController。 接下来,您需要执行以下操作:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool {
        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        self.window!.backgroundColor = UIColor.whiteColor()
        var splitViewController =  UISplitViewController()
        var rootViewController = RootViewController()
        var detailViewController = DetailViewController()
        splitViewController.viewControllers = [rootViewController,detailViewController]
        self.window!.rootViewController = splitViewController
        self.window!.makeKeyAndVisible()
        return true
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接