Mis*_*sha 1 uibutton uiviewcontroller ios segue swift
我对 swift 还很陌生,所以请耐心等待。
现在我的问题可以分解为:
我有一个测试视图控制器,它可以通过显示描述和标题来显示我的“测试”对象。我也有一组 Test 对象。在右上角,有一个“跳过此测试”按钮,如果用户点击它,视图控制器将自动切换到自身,但更改正在显示的测试对象,例如它只是基本上循环遍历一个数组测试。我相应地更改了准备转场方法以通过视图控制器推送数据。
但是,如果我已经到达我的测试数组中的最后一个测试,我希望能够移动到一个完全不同的 ViewController(让我们称之为 FinalViewController)。
现在这是我无法修复的部分。
我想直接从“跳过测试”按钮创建一个转场,只是它根据特定条件转入不同的视图控制器。但是,当我尝试通过右键单击 Button 并将其拉到 FinalViewController 在 IB 中创建一个 segue 时,它删除了我之前为该按钮创建的 segue。
有谁知道是否有解决此问题的方法?谢谢你!!!!
但是,当我尝试通过右键单击 Button 并将其拉到 FinalViewController 在 IB 中创建一个 segue 时,它删除了我之前为该按钮创建的 segue
实际上,您不想这样做,相反,您应该从控制器本身而不是从按钮拖动,因为如果您的 segue 是基于按钮创建的,那么点击它应该始终执行它,而这不是您想要的想。
从 ViewController 创建 segue 后,您可以 - 以编程方式 - 调用performSegue方法并通过实现prepareForSegue方法来处理应该传递给下一个 viewController 的数据。
有关更多信息,请查看我的答案以了解如何使用标识符创建多个 segue 并使用它们。
编辑:
如果要推送到相同的当前 ViewController,则performSegue方法不是最佳解决方案。您应该自己推送/呈现给同一个 ViewController:
class ViewController: UIViewController {
var myString: String?
override func viewDidLoad() {
super.viewDidLoad()
// here we go
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let sameViewController = storyboard.instantiateViewControllerWithIdentifier("ViewControllerStoryboardID") as! ViewController
sameViewController.myString = "the value of the new myString"
navigationController?.pushViewController(sameViewController, animated: true)
print(myString)
}
}
Run Code Online (Sandbox Code Playgroud)
可能您不想在 中实现它viewDidLoad,这只是为了演示目的。
确保 ViewController 有一个故事板 ID(在代码片段中,我假设它是“ViewControllerStoryboardID”):
| 归档时间: |
|
| 查看次数: |
2249 次 |
| 最近记录: |