2016-04-29 15 views
0

私はUIPageViewControllerに関するチュートリアルを取っており、Amazon Web Servicesに保存した画像を読み込もうとしています。Swift/XCode with Kingfisher- Webから画像を読み込めません。

私はAWSから様々な画像を引っ張って、私のUIPageController上の異なるアイテムをスワイプしようとしている、私が受けています:

"fatal error: unexpectedly found nil while unwrapping an Optional value.:

モデル:

import UIKit 

class PageContentViewController: UIViewController { 

@IBOutlet weak var lblTitle: UILabel! 

@IBOutlet weak var imageView: UIImageView! 

var pageIndex: Int = 0 
var strTitle: String! 
var strPhotoName: String! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    imageView.image = UIImage(named: strPhotoName) 
    lblTitle.text = strTitle 
    } 
} 

コントローラー:

import UIKit 
import Kingfisher 

class ViewController: UIPageViewController, UIPageViewControllerDataSource 
{ 
var arrPageTitle: NSArray = NSArray() 
var arrPagePhoto: NSArray = NSArray() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    arrPageTitle = ["This is The App Guruz", "This is Table Tennis 3D", "This is Hide Secrets"]; 
    arrPagePhoto = ["https://s3.amazonaws.com/fan-polls/heyward_again.jpg", "https://s3.amazonaws.com/fan-polls/Schwarber.jpg", "https://s3.amazonaws.com/fan-polls/mike_ditka.jpg"]; 

    self.dataSource = self 

    self.setViewControllers([getViewControllerAtIndex(0)] as [UIViewController], direction: UIPageViewControllerNavigationDirection.Forward, animated: false, completion: nil) 
} 

func pageViewController(pageViewController: UIPageViewController, viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? 
{ 
    let pageContent: PageContentViewController = viewController as! PageContentViewController 

    var index = pageContent.pageIndex 

    if ((index == 0) || (index == NSNotFound)) 
    { 
     return nil 
    } 

    index += 1; 
    return getViewControllerAtIndex(index) 
} 

func pageViewController(pageViewController: UIPageViewController, viewControllerAfterViewController viewController: UIViewController) -> UIViewController? 
{ 
    let pageContent: PageContentViewController = viewController as! PageContentViewController 

    var index = pageContent.pageIndex 

    if (index == NSNotFound) 
    { 
     return nil; 
    } 

    index += 1; 
    if (index == arrPageTitle.count) 
    { 
     return nil; 
    } 
    return getViewControllerAtIndex(index) 
} 

func getViewControllerAtIndex(index: NSInteger) -> PageContentViewController 
{ 
    // Create a new view controller and pass suitable data. 
    let pageContentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageContentViewController") as! PageContentViewController 

    pageContentViewController.strTitle = "\(arrPageTitle[index])" 
    pageContentViewController.strPhotoName = "\(arrPagePhoto[index])" 
    pageContentViewController.imageView.kf_setImageWithURL(arrPagePhoto[index] as! NSURL) 

    pageContentViewController.pageIndex = index 

    return pageContentViewController 
    } 
    } 

enter image description here

+1

で、この値を使用できますか?まずこのURLを作成してキャストするだけではなく、それを使用してください –

+0

私はSwiftとiOSの新機能です。コードを貼り付けることはできますか? – tccpg288

答えて

0

前のコメントで説明したように、StringからNSURLにキャストします。 'String'と 'NSURL'は異なるオブジェクトタイプです。 変換する必要があります。これはあなたの文字列をNSURLに変換します。あなたはNSURLに文字列からキャストなぜ

let imageUrl = NSURL(string: arrPagePhoto[index]) 

は今カワセミ

pageContentViewController.imageView.kf_setImageWithURL(imageUrl) 
関連する問題