簡體   English   中英

如何在Swift中將UIViewController添加到UIScrollView

[英]How Do I Add UIViewController to UIScrollView in Swift

我想要一個UIViewControllers的UIScrollView。 我對ScrollView進行了測試,並且工作正常,除非嘗試添加ViewControllers。 該項目構建良好,但是我遇到了“ fatal error: unexpectedly found nil while unwrapping an Optional value ”錯誤,該錯誤指向ViewController,尤其是以下行:

self.imageView.image = UIImage(named: self.image!)

但是,當我檢查對象時,可以在ViewController中看到變量imagetext具有值。 我正在使用Xcode 6.3 Beta並構建到iOS8.1目標。

這是代碼:

import UIKit

class ViewController: UIViewController {

//@IBOutlet weak var contentScrollView: UIScrollView!

@IBOutlet var contentScrollView: UIScrollView!

//test to make sure ScrollView functions
//let colors = [UIColor.redColor(),UIColor.blueColor(), UIColor.greenColor(), UIColor.whiteColor(), UIColor.blackColor(), UIColor.yellowColor()]

var frame = CGRectMake(0, 0, 0, 0)

var dataArray = [PostItem]()

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    var da = PostItem(text: "test 1", pic: "beans.jpg")
    self.dataArray.append(da!)

    da = PostItem(text: "test 2", pic: "coffee.jpg")
    self.dataArray.append(da!)

    da = PostItem(text: "test 3", pic: "coffeeCup.jpg")
    self.dataArray.append(da!)

    for index in 0..<self.dataArray.count{
        self.frame.origin.y = self.contentScrollView.frame.size.height * CGFloat(index)
        self.frame.size = self.contentScrollView.frame.size
        self.contentScrollView.pagingEnabled = false
        let tempPost = self.dataArray[index]


        var vc = PostViewController()
        vc.text = tempPost.postText
        vc.image = tempPost.postImage

        self.contentScrollView.addSubview(vc.view)

    }

    self.contentScrollView.contentSize = CGSizeMake(self.view.frame.size.width, CGFloat(self.dataArray.count) * self.contentScrollView.frame.height)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}}

這是我要添加的ViewController的代碼:

import UIKit

class PostViewController: UIViewController {

    //let postItem
    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var postToFBButton: UIButton!
    @IBOutlet weak var postToTwitterButton: UIButton!
    @IBOutlet weak var postText: UILabel!

    var image:String?
    var text:String?

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
        self.imageView.image = UIImage(named: self.image!)
        self.postText.text = text!
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }}

解決方法是創建PostViewController通過instantiateViewControllerWithIdentifier從情節串連圖板,這樣一來,將有來自故事板加載一個ImageView的時,其視圖添加到滾動視圖。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM