2014-06-10 14 views
6

Jakie kroki należy wykonać? W Objective-C stworzyliśmy rootViewController i detailViewController, po dodaniu tych kontrolerów do splitViewController. Na przykład:Jak można programowo utworzyć SplitViewController w Swift?

- (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; 
    } 

Jak mogę zrobić to samo w Swift?

Odpowiedz

1

Po pewnym czasie znalazłem odpowiedź:

w momencie pierwszej potrzeby tworzenia rootViewController i detailViewController. Na przykład rootViewController będzie dziedziczyć z UITableViewController, a detailViewController będzie dziedziczyć z UIViewController. W następnym razem trzeba będzie to zrobić:

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 
    } 
11

jeśli chcesz zrobić to z navigationController, a następnie spróbuj go:

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 
} 
+0

Dziękujemy! To naprawdę działa! –