Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.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 无法转换类型为';ViewController.Type';到预期的参数类型';UIViewController';_Ios_Swift_Types_Uicontainerview - Fatal编程技术网

Ios 无法转换类型为';ViewController.Type';到预期的参数类型';UIViewController';

Ios 无法转换类型为';ViewController.Type';到预期的参数类型';UIViewController';,ios,swift,types,uicontainerview,Ios,Swift,Types,Uicontainerview,我已经分析了问题,但它是关于alertController 实际上我正在做的是,我正在与ContainerViews一起工作,成为MasterVC。我正在关注这个。 当我使用updateView()函数并在这些行上添加或删除控制器时,我遇到了这个错误 无法将“ViewController.type”类型的值转换为预期的参数类型“UIViewController” 这是因为您的函数(例如add(asChildViewController:)采用UIViewController实例,而您尝试传递类

我已经分析了问题,但它是关于
alertController
实际上我正在做的是,我正在与
ContainerViews
一起工作,成为
MasterVC
。我正在关注这个。 当我使用
updateView()
函数并在这些行上添加或删除控制器时,我遇到了这个错误

无法将“ViewController.type”类型的值转换为预期的参数类型“UIViewController”


这是因为您的函数(例如add(asChildViewController:)采用UIViewController实例,而您尝试传递类型

换句话说,您是在告诉“添加CheckoutViewController”,而不是具体告诉应该添加哪一个CheckoutViewController

在添加视图控制器之前,必须先创建它。例如,如果使用故事板:

if segmentedCont.selectedSegmentIndex == 0 {
    guard let instockVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "Instock") as? InstockViewController else { return }
    add(asChildViewController: instockVC)
}

对于删除,我建议查看以下答案:

您正在尝试删除视图控制器类型,而不是视图控制器的实例。考虑这条线:

remove(asChildViewController: InstockViewController)
InstockViewController
是一种视图控制器。您需要传递该类型的实例


编辑:在您引用的教程中,他在“添加子视图控制器”一节中对此进行了解释。在这里,他展示了主视图控制器如何创建要包含的视图控制器实例。

我如何添加??请更新答案以便解决错误>PLZ我应该在那里写些什么查看我的编辑。请更仔细地阅读教程,这里有详细的说明。如果您不清楚实例和类型之间的区别,您将很难理解。
remove(asChildViewController: InstockViewController)