Ken*_*yVB 2 switch-statement swift
在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];
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我很快想到的。对此我仍然很陌生,要理解它也有些困难,即使我有快速的编程语言书
这是我到目前为止迅速得到的
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:
}
Run Code Online (Sandbox Code Playgroud)
错误是:用let viewController = UIViewcontroller()在行中的 预期声明
让我们从您的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];
}
Run Code Online (Sandbox Code Playgroud)
现在,Swift中的相同代码段:
func initialSite(viewID:Int)
{
var viewController : UIViewController?
switch (viewID)
{
case 0:
viewController = self.initial
let navn = self.data["navn"] as? String
let star = "Velkommen til \(navn)'s Bog"
self.navigationItem.title = star
case 1:
viewController = self.startSide
let navn = self.data["navn"] as? String
let star = "\(navn)'s Bog, start-side"
self.navigationItem.title = star
default:
viewController = nil
// do nothing
}
self.showChildViewController(viewController)
}
Run Code Online (Sandbox Code Playgroud)
您要记住的主要是与varvs 的区别let。通常,您将使用let来创建事物,除非这些事物以后会更改其值(使用)var。
另一件事是使用带有?后缀的Optionals。这是值可以是nil(未设置)的情况,否则它必须包含一个值。
| 归档时间: |
|
| 查看次数: |
5205 次 |
| 最近记录: |