如何制作按钮移动到另一个ViewController

时间:2017-09-23 07:13:59

标签: ios swift xcode

如何让Button转移到另一个ViewController

任何人都可以帮助我,这是我的代码。 我尝试使用button1: UIButton!,但我收到了错误

class Interest1
{
    var title = ""
    var description = ""
    var featuredImage: UIImage!
    var button1: UIButton!
    var button2: UIButton!
    var button3: UIButton!
    var button4: UIButton!

    init(title: String, featuredImage: UIImage!, button1: UIButton!)
    {
        self.title = title
        self.featuredImage = featuredImage
    }

    static func createInterest() -> [Interest1]
    {
        return [
           Interest1(title: "One", featuredImage: UIImage(named:"001.png")!, button1: UIButton), // I got error Here i don't know why
            Interest1(title: "Two", featuredImage: UIImage(named:"002.png")!),
            Interest1(title: "Three", featuredImage: UIImage(named:"003.png")!),
            Interest1(title: "Four", featuredImage: UIImage(named:"004.png")!),
        ]    
    }
}

代码:

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
    return interests3.count //error
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "1", for: indexPath as IndexPath) as! interestCollectionViewCell
    cell.interest2 = self.interests3[indexPath.item] //error
    return cell
}

错误为use of unresolved identifier 'interests3'

2 个答案:

答案 0 :(得分:0)

删除类型注释,如下面的代码 -

init

并改变init(title: String, featuredImage: UIImage, button1: UIButton) { self.title = title self.featuredImage = featuredImage } 这样的功能 -

static

并像这样添加static var button1: UIButton! static var button2: UIButton! static var button3: UIButton! static var button4: UIButton! -

class Interest1
{
    var title = ""
    var description = ""
    var featuredImage: UIImage!
    static var button1: UIButton!
    static var button2: UIButton!
    static var button3: UIButton!
    static var button4: UIButton!

    subscript(index:Int)->Int
    {
        return 5
    }

    init(title: String, featuredImage: UIImage, button: UIButton)
    {
        self.title = title
        self.featuredImage = featuredImage


    }

    static func createInterest() -> [Interest1]
    {
        return [
            Interest1(title: "One", featuredImage: UIImage(named:"001.png")!, button: button1),
            Interest1(title: "Two", featuredImage: UIImage(named:"002.png")!, button: button2),
            Interest1(title: "Three", featuredImage: UIImage(named:"003.png")!, button: button3),
            Interest1(title: "Four", featuredImage: UIImage(named:"004.png")!, button: button4),
        ]
    }
}

这是完整代码 -

{{1}}

答案 1 :(得分:0)

我发现有关您的代码的几个问题。修理它们会很好。

你不必像button1那样命名你的参数 - 这里的按钮更合适,所以你的构造函数可以像

init(title: String, featuredImage: UIImage!, button: UIButton!)

强行打开这里并不是一个好方法。最好删除它,所以构造函数是:

init(title: String, featuredImage: UIImage, button: UIButton)

现在,在构造函数内部根本不使用按钮。我想你想设置它,比如

init(title: String, featuredImage: UIImage, button: UIButton)
    {
        self.title = title
        self.featuredImage = featuredImage
        self.button = button
    }

最后,在你创建的对象中,你现在使用的不是现有的构造函数:

Interest1(title: "Two", featuredImage: UIImage(named:"002.png")!)

您还必须提供按钮。所以,可能你想做这样的事情:

   static func createInterest() -> [Interest1]
        {
            return [
               Interest1(title: "One", featuredImage: UIImage(named:"001.png")!, button: someFirstButton), // I got error Here i don't know why
                Interest1(title: "Two", featuredImage: UIImage(named:"002.png")!, button: someSecondButton),
                Interest1(title: "Three", featuredImage: UIImage(named:"003.png")!, button: someThirdButton)
            ]    
        }

注意,你可能想在里面提供你的按钮,而不是someFirstButton,someSecondButton,someThirdButton

祝你好运

相关问题