请原谅,我对ios编码比较陌生:
我已经通过“取消”和“购买”按钮实现了一个actionSheet。 “购买”按钮操作成功执行,没问题。
但是,我想做的是添加另一个(第二个)操作,该操作使用户可以在调用原始(第一个)操作后自动选择另一个屏幕。
简化的:我想按(在我的actionSheet上)购买产品的“购买”按钮,然后想自动进入下载屏幕以查看我的新下载内容。
private func setBuyButton() -> Void {
// Buy button action sheet
actionSheet = UIAlertController(title: "CONFIRM PURCHASE", message: "\(self.products.title) will be added to your Download page", preferredStyle: .actionSheet)
let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
let confirmPurchase = UIAlertAction(title: "Buy", style: .default) { action in
var productList = [String: Bool]()
let productSetName = [self.productSetId : true]
self.product.map({ (drop: Drop) -> Void in
productList[product.productKey] = true
})
if let userId = KeychainWrapper.standard.string(forKey: KEY_UID) {
let downloads = ["product": productList, "productset": productSetName]
DataService......blah, blah, blah...
}
}
actionSheet.addAction(confirmPurchase)
actionSheet.addAction(cancel)
}
答案 0 :(得分:1)
在情节提要中,单击视图控制器上方的黄色圆圈图标,然后拖动到目标视图控制器以创建序列。 选择segue并为其指定一个标识符
现在,您可以在第一个视图控制器中调用performSegue(withIdentifier:sender:)
进行编程选择。您的情况下,
self.performSegue(withIdentifier: "yourCustomSegue", sender: nil)
在您的行操作处理程序中可以解决问题。
答案 1 :(得分:0)
使用子类DownloadView
创建文件UICollectionViewController
,然后在您的操作中添加以下代码
let layout = UICollectionViewFlowLayout()
let controller = DownloadView.init(collectionViewLayout: layout)
self.navigationController?.pushViewController(controller, animated: true)
此外,如果不需要collectionView
,请创建一个子类为UIViewController
的文件,并像这样推送它
self.navigationController?.pushViewController(DownloadView(), animated: true)
添加带有标识符down
的viewController并将这些代码写入动作处理程序
let downloadView = self.storyboard?.instantiateViewController(withIdentifier: "down") as! DownloadView
self.present(downloadView, animated:true, completion:nil)