【问题标题】:Swift Make Animation to look like going to new ViewController without having OneSwift Make Animation 看起来像是在没有 One 的情况下进入新的 ViewController
【发布时间】:2017-09-24 21:11:37
【问题描述】:

我想创建一个小的辅助功能来显示服务器的文件,因此是一个小的 FileExplorer。

我有一个 TableViewController(包括 NavigationController),可以在其中显示当前目录的所有文件。 如果我点击一个文件夹,我打算将它转到子文件夹并查看其内容。

我的问题是我无法创建另一个 TableViewController,因为我不知道我需要多少,也许是一百,因为我不知道服务器上有多少子文件夹。

有谁知道我如何制作一种动画,让它看起来像一个新的 ViewController(包括返回按钮!),并在制作动画时简单地用新数据重新加载 TableView?

【问题讨论】:

  • 您的问题不清楚。明确你想要什么。
  • @SyedQamarAbbas 制作一个动画,看起来好像你没有一个 ViewController 去。
  • 为什么有多个视图控制器是个问题?您应该简单地使用标准导航控制器。尝试任何类型的文件浏览器应用程序,您会发现它也使用标准的内置导航。借助 iOS 及其高级内存处理,视图控制器管理不再是问题。
  • 那你要打开什么?打开一个 tableViewController 而不推送,但在前一个 viewController 中使用与推送视图控制器相同的动画?
  • @the4kman 我正在使用上面提到的导航控制器,但我正在尝试制作文件资源管理器,因此我需要向情节提要添加无限的页面

标签: ios swift xcode


【解决方案1】:

如果用户点击文件夹,您可以简单地实例化一个新的DownloadsViewController,设置它的属性以便它从选定的文件夹中显示,然后将该新实例推送到您的导航控制器上。

类似:

if let newVc = self.storyboard?.instantiateViewController(withIdentifier: "files") as? DownloadViewController {  // The identifier must match the Storyboard ID for the scene in your storyboard
   newVC.rootFolder = selectedFolder // You haven't shown your code, but this will be the folder from the array driving your tableview
   self.navigationController?.pushViewController(newVC, animated: true)
}

【讨论】:

    【解决方案2】:

    您在评论中说“我正在使用上面提到的导航控制器,但我正在尝试制作文件资源管理器,因此我需要向情节提要添加无限的页面”。

    您的故事板不必有无限的页面。不要使用segues。当您准备好深入到文件层次结构的另一个级别时,使用 instantiateController(withIdentifier:) 创建视图控制器的新实例,将数据安装到其中,并将其推送到导航控制器上。

    创建一个看起来像视图控制器推送的动画是没有意义的,但实际上并非如此。您确实想要推送文件夹内容视图控制器的新实例。

    【讨论】:

    • 场景的唯一故事板标识符。您应该检查有关该方法的文档。他们解释得很好。
    • 您的评论清楚地表明,在提出另一个问题之前,您甚至没有尝试研究我的答案。不要那样做。
    • 我自己没有尝试过,因为我还不在家,但是我在互联网上搜索并没有找到任何关于在 Swift 中推送到 ITSELF 的信息
    猜你喜欢
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 2019-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多