我的理想情况是,当我按下名为“1”/ ButtonArray.index[0]
的按钮时,它会执行一个segue(segue标识符为“segueFirst”)到另一个名为“FirstCollectionViewController”的UIViewController
。
但按下按钮时没有任何反应。
现在,我不知道它是否与segue有关,我怀疑。我认为它与按钮有关,但我无法弄明白。
PS:在ButtonArray函数内部(应该触发segue)我尝试了performSegueWithIdentifier
但是按下按钮没有任何反应。
我也试过presentViewController
,但它给了我这个错误
无法将“FirstCollectionViewController.Type”类型的值转换为预期的参数类型“UIViewController”
我不明白,因为我已将其声明为ViewController(在“新VC”中)。
VC1:
import Foundation
import UIKit
class CollectionViewController: UICollectionViewController {
var Array = [String]()
var ButtonArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
Array = ["1","2","3","4"]
ButtonArray = ["1", "2", "3", "4"]
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return Array.count
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as UICollectionViewCell
let Label = cell.viewWithTag(1) as! UILabel
Label.text = Array[indexPath.row]
let Button = cell.viewWithTag(2) as! UIButton
Button.setTitle(ButtonArray[indexPath.row], forState: UIControlState.Normal)
Button.addTarget(self, action: "ButtonArray", forControlEvents:.TouchUpInside)
return cell
}
func ButtonArray(sender : UIButton) {
print("Not the function")
var selectedButtonCell = sender.superview as! UICollectionViewCell
var indexPath = collectionView?.indexPathForCell(selectedButtonCell)
if indexPath?.row == 0 {
print("Not the if-statement")
// presentViewController(FirstCollectionViewController, animated: true, completion: nil)
// performSegueWithIdentifier("segueFirst", sender: nil)
}
}
}
新VC:
import UIKit
import Foundation
class FirstCollectionViewController : UIViewController {
override func viewDidLoad() {
print("hey")
}
}
答案 0 :(得分:0)
您忘记在 $importer = Importer::getInstance(Importer::NW);
$importer->import($nid);
内使用按钮添加目标,在cellForItemAtIndexPath
setTitle
方法后添加此行
Button
我认为问题可能是你的按钮框架太小所以尝试实现Button.addTarget(self,action: Selector("ButtonArray:"), forControlEvents: .TouchUpInside)
的{{1}}方法,如果没有设置你的ViewController也设置你的collectionView委托,并检查它正在调用didSelectItemAtIndexPath
。
UICollectionViewDelegate