是否可以在UINavigationContoller堆栈上推送UIViewController的2个单独实例

时间:2017-09-05 19:31:10

标签: ios swift uiviewcontroller uinavigationcontroller

我有一个通用的UIViewController,它有多种用途。它可以通过6种不同的方式实例化,因为它设计得非常通用。让我们将这个多用途viewcontroller称为MultiPurposeViewController。

plot.linear.equations <- function(X, ...){
     dat <- data.frame(x = X)

     p <- ggplot(mapping = aes(x = X))

     arguments <- list(...)

     mycolors <- c("red", "blue", "green", "orange")
     labels <- c("C 1", "C 2", "C 3", "C 4")

     for(i in 1:length(arguments)){
          dat$label <- labels[i]
          C <- unlist(arguments[i])
          p <- p + stat_function(data = dat, fun=F.Linear, args = list(a=C[1], b=C[2], c=C[3]), geom="area", colour="black", alpha=0.2, aes(fill = label))
     }

     p <-  p + scale_x_continuous(name = "A") +
          scale_y_continuous(name = "C") +
          scale_fill_manual("Constraints", values = c("red", "blue", "green", "orange"))
     return(p)
}

Inside Type1VC:

Type1VC = MultiPurposeViewController()// initiated differently
self.navigationController.push(Type1VC)

是否允许使用导航控制器进行操作?

编辑:

  • 这样的操作会导致内存问题吗?
  • 处理Type2VC = MultiPurposeViewController()// initiated differently than before self.navigationController.push(Type2VC) 堆栈时是否允许这样的操作?
  • 是否有人遇到过这样的情况:将同一UINavigationController的多个实例堆叠到UIViewContoller堆栈而没有任何内存泄漏?

1 个答案:

答案 0 :(得分:4)

官方Apple Doc明确提到:

  

要实现导航界面,您必须确定要传输的数据   出现在数据层次结构的每个级别。对于每个级别,您必须   提供内容视图控制器来管理和呈现数据   那个级别。如果多个级别的演示文稿是相同的,那么您   可以创建相同视图控制器类的多个实例   配置每个人来管理自己的数据集。例如,   照片应用程序有三种不同的演示文稿类型。

您可以通过以下方式阅读更多内容:https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/NavigationControllers.html

希望这能让您完整了解您的问题。 随意评论。