在 Obj-c 中,我编写了一个 switch 语句并使用它来在 iPad 上使用 UIsplitviewcontroller 在应用程序中移动 现在我想在 swift 中做同样的事情...我试了几个小时,现在唯一我还没有尝试过的是代码,因为它显示了某种编译错误 不管怎样,这是我在 Obj-c 中得到的:
-(void)initialSite:(int)viewId {
UIViewController *viewController;
switch (viewId) {
case 0:{
viewController = self.initital;
NSString *star = [NSString stringWithFormat:@"Velkommen til %@'s Bog",[data valueForKey:@"navn"]];
self.navigationItem.title = star;}
break;
case 1:{
viewController = self.startSide;
NSString *start = [NSString stringWithFormat:@"%@'s Bog, start-side",[data valueForKey:@"navn"]];
self.navigationItem.title = start;}
break;
}
[self showChildViewController:viewController];
}
这是我在Swift中目前的成果。虽然我有Swift编程语言书籍,但仍然很难理解。
以下是我在Swift中的进展:
let viewController = UIViewController()
switch viewController {
case "initial":
let initial : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc0 : UIViewController = initial.instantiateViewControllerWithIdentifier("initial") as UIViewController
self.presentViewController(vc0, animated: true, completion: nil)
let rowData: NSDictionary = self.menuItemArray[indexPath.row] as NSDictionary!
self.navigation.title = rowData["navn"] as? String
case "startSide":
let startSide : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc1 : UIViewController = startSide.instantiateViewControllerWithIdentifier("startSide") as UIViewController
let rowData: NSDictionary = self.manuItemArray[indexPath.row] as NSDictionary!
self.presentViewController(vc1, animated: true, completion: nil)
self.navigation.title = rowData["navn"] as? String
default:
}
错误信息是:在包含let viewController = UIViewcontroller()代码行的位置,期望有声明。
viewController
传递到switch语句中并将其与Strings
进行比较?你是想在Swift中创建与上面示例完全相同的东西吗? - Firo