当我正在学习Swift 3和Xcode 8时,我已经到了一个我现在很困惑的地步,或者知道什么时候该使用正确的切换方法。要取消您的解雇,返回您返回但返回按钮可以是解雇?
在内存使用方面,哪种做法是最好的?
@IBAction func backArrowTapped(_ sender: Any) {
let storyboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let dc: DashboardVC = storyboard.instantiateViewController(withIdentifier: "dashboardVC") as! DashboardVC
self.present(dc, animated: true, completion: nil)
}
//or
@IBAction func backArrowTapped(_ sender: Any) {
dismiss(animated: true, completion: nil)
}
您将如何组织
back
或cancel
按钮操作?何时使用上述任一功能? 最佳答案
我觉得你想得太多了。。。使用present和dispose方法非常简单。
让我们举一个简单的例子来说明:
假设您有两个viewcontroller,第一个称为FirstViewController
,第二个称为SecondViewController
。
present(_:animated:completion:):
以模式呈现视图控制器。
默认情况下,初始视图控制器是FirstViewController
(第一个视图控制器出现在用户面前),它有一个按钮,当用户点击它时,它应该显示第二个视图控制器;它的操作应该作为代码片段中的第一个@IBAction
来实现!这导致在SecondViewController
之上出现FirstViewController
。
dismiss(animated:completion:):
解除视图以模式显示的视图控制器
控制器。
对于SecondViewController
,假设它应该有一个“取消”按钮,当用户点击它时,它应该关闭当前显示的视图控制器(即SecondViewController
),关闭按钮的操作应该作为代码片段中的第二个@IBAction
来实现。
扼要重述:
应该在第一个视图控制器中调用present方法以显示第二个视图控制器;应该在第二个视图控制器中调用dismission,请执行“取消”操作并返回到第一个视图控制器。
也:
请注意,present/dissive与push/pop不同。有关详细信息,请选中UINavigationController documentation。
希望这有帮助。
关于ios - 用xcode 8消除vs存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41479246/