Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取额外参数';动画';随时待命_Ios_Xcode_Swift - Fatal编程技术网

Ios 获取额外参数';动画';随时待命

Ios 获取额外参数';动画';随时待命,ios,xcode,swift,Ios,Xcode,Swift,当我试图以编程方式转到另一个故事板时,我使用 //Pop user to next screen let storyboard = UIStoryboard(name: "HomeViewController", bundle: nil); let vc = storyboard.instantiateViewControllerWithIdentifier("home") as UIViewController; self.presentViewController(vc, animated:

当我试图以编程方式转到另一个故事板时,我使用

//Pop user to next screen
let storyboard = UIStoryboard(name: "HomeViewController", bundle: nil);
let vc = storyboard.instantiateViewControllerWithIdentifier("home") as UIViewController;
self.presentViewController(vc, animated: true, completion: nil);
但这并没有在下一个故事板上显示导航控制器。所以我做了

HomeViewController.presentViewController(vc, animated: true, completion: nil);
所有这些都是

调用中的额外参数“已设置动画”


有什么想法吗?

关于你的第一个问题,有几点看法:

  • 对于第一个问题,您可能希望确保
    vc
    不是
    nil
    (例如,找到了脚本id为
    home
    的场景):

  • 我建议你仔细检查“家庭”场景中“故事板id”的拼写和大小写

  • 顺便说一句,如果您在IB中为第二个故事板中的第一个场景选中了“Is Initial View Controller”复选框,那么您也可以执行以下操作:

    let vc = storyboard.instantiateInitialViewController()
    
    您可以直观地确认此设置,因为场景将有一个小的“初始顺序”箭头从左侧指向它:

  • 如果您正在对目标场景执行
    presentViewController
    ,该场景本身嵌入在导航控制器中,则您应该呈现该导航控制器(即,为导航控制器的场景提供“情节提要id”或将其指定为“初始视图控制器”),而不是嵌入到该导航控制器中的场景

关于第二个错误,这是因为您调用的是实例方法
presentViewController
,但引用的可能是类名
HomeViewController
,而不是实例。这种语法根本没有任何意义


前面的语法与
self.presentViewController(…)
可能是正确的,但很可能没有找到情节提要或场景,原因可能是一个或另一个的名称(很可能是场景的“情节提要id”)或记分牌未包含在捆绑包中(虽然我认为这会产生不同的错误)。

如果我将标签拖到下一个视图控制器中,我可以看到它。只是导航控制器没有显示。您必须为该导航控制器提供一个唯一的脚本id,并在代码中引用该id,(或者,对于导航控制器的场景,选中“是初始视图控制器”复选框,然后使用
实例化初始视图控制器
语法)。这就是我使用第二行的目的。我已经在interface builder中将情节提要ID设置为
home
,并且您指定的这个情节提要ID不是在您刚刚添加标签的场景中,而是在该场景之前的导航控制器场景中,对吗?好了!我正在将其添加到视图而不是视图控制器中。谢谢我花了好几个小时在这上面。
let vc = storyboard.instantiateInitialViewController()