【发布时间】:2019-06-29 19:30:30
【问题描述】:
我有一个 UIViewController,它实现了 UITableViewDelegate、UITableViewDataSource 并包含一个 UITableView 作为成员变量。当用户单击该表的某一行时,应用程序执行故事板 segue 以打开详细视图控制器。详细视图控制器当然在屏幕左上角有一个按钮,它是“返回”按钮,用于返回带有 UIViewTable 的 UIViewController。
所以,假设我想以编程方式“单击”该后退按钮。我将如何快速做到这一点?这是 XCode 10.1 中 swift (swift 4?) 的最新版本。
更新:
这就是我解决这个问题的方法。正如下面的答案所示,可以使用 self.navigationController?.popViewController(animated: true) 来返回到前一个视图控制器。然而,我发现我还想做的是调用该视图控制器中的特定方法,以便它在显示后执行某种行为。事实证明这也是可能的,但就我而言,这有点棘手,因为之前的视图控制器实际上是一个 UITabBarController。因此,我必须从 UITabBarController 中获取我感兴趣的 ViewController。我是这样做的:
let numvc = navigationController!.viewControllers.count
let tvc:UITabBarController = navigationController!.viewControllers[numvc-2] as! UITabBarController
let my_vc: MyCustomVC = tvc.viewControllers![0] as! MyCustomVC
my_vc.some_function()
当然,MyCustomV 是我的自定义视图控制器类,而 some_function() 是我想在该类上调用的方法。希望这对某人有所帮助。
【问题讨论】:
标签: swift xcode uitableview uiviewcontroller