【发布时间】:2014-06-10 18:31:21
【问题描述】:
在 Obj-c 中我做了一个 switch 语句,我曾经使用 UIsplitviewcontroller 在我的 iPad 应用程序中移动 现在我想快速做同样的事情......我尝试了几个小时,现在我唯一无法尝试的是代码,因为它说某种编译错误 反正 这是我在 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 中得到的结果
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:
}
错误是:预期的声明在与 让 viewController = UIViewcontroller()
【问题讨论】:
-
您在 Swift 中创建的内容与您的 Obj-C 版本完全不同。例如,您为什么将
viewController传递到您的switch 语句中并将其与Strings进行比较?您是否尝试在 Swift 中创建与上述示例完全相同的内容? -
@Firo 是的,我正在尝试将上面的示例从 obj-c 重新创建为 swift。但很难理解 swift