添加UIViewContainer后出现意外的子视图

时间:2017-03-24 14:06:30

标签: ios swift xcode

我有一个ViewController,我有一个表视图,它从一个结构加载数据,一切都很好。我添加了一个分段控制器,然后创建了2个UIViewContainers。

我将所有Tableview代码移动到UIViewContainer 1,UIViewContainer 2当前为空。我还将故事板中的TableView移动到新的UIViewContainer 1

代码中的

UIViewcontainer 1 = tableContainer UIViewController 2 = mapContainer

我已经为分段视图控制器添加了代码:

@IBOutlet weak var mapContainer: UIView!
@IBOutlet weak var tableContainer: UIView!


@IBAction func showContainer(_ sender: UISegmentedControl) {
    if sender.selectedSegmentIndex == 0 {
        UIView.animate(withDuration: 0.5, animations: {
            self.tableContainer.alpha = 1
            self.mapContainer.alpha = 0
        })

    }else {
        UIView.animate(withDuration: 0.5, animations: {
            self.tableContainer.alpha = 0
            self.mapContainer.alpha = 1
        })
    }

} 

这或多或少是我主视图控制器中的唯一代码。

当我运行时,编译工作正常但在加载时崩溃并出现以下错误:

*** Terminating app due to uncaught exception 
'NSInternalInconsistencyException', reason: 'There are unexpected 
subviews in the container view. Perhaps the embed segue has already 
fired once or a subview was added programmatically?'
***

我是否遗漏了一些我需要对tableView或一般视图做的事情?

4 个答案:

答案 0 :(得分:0)

日志显示容器视图中存在意外的子视图。您可能希望确保将所有子视图移动到(嵌入)segueD UIViewController而不是容器本身。

答案 1 :(得分:0)

我现在已经解决了这个问题。设置时出现问题,我删除了所有容器并将应用程序恢复原状,再次启动并且现在正常工作

答案 2 :(得分:0)

我遇到的问题是我在segue.perform()中意外执行了prepare(for:sender:)。删除该行后,错误就消失了。

答案 3 :(得分:0)

就我而言,这是解决方案。给定您的容器视图称为model = keras.models.load_model('Model88.h5') model.evaluate(X_test, y_test) Result >> accuracy: 0.0214 !!! ,请调用

containerView

在致电之前

containerView.removeSubviews()