2016-05-25 7 views
1

私はUICollectionViewの内部にユーザーのフォトギャラリーを表示するためにこのGitHub project's controllerを使用しています。すべてが大丈夫ですが、1つを除いて:私は初めてそれを実行すると、アクセス権について私に尋ねます。私はそれを受け入れますが、その後はギャラリーからイメージを取得できません。何も表示しません。権限付与後にギャラリーの写真が表示されないのはなぜですか?

しかし、私は私のアプリを閉じて再び実行すると、ギャラリーから自分の写真を取得することができます。だから、この問題は最初の打ち上げ時に現れます。

誰も助けてくれますか、どのように解決できますか?

UPDATE

私は、この観察者が誤って動作すること、としますので、

func photoLibraryDidChange(changeInstance: PHChange) { 
    let changeDetails = changeInstance.changeDetailsForFetchResult(images) 

    self.images = changeDetails!.fetchResultAfterChanges 
    dispatch_async(dispatch_get_main_queue()) { 
     // Loop through the visible cell indices 
     let indexPaths = self.imagesCollectionView.indexPathsForVisibleItems() 
     for indexPath in indexPaths as [NSIndexPath]! { 
      if changeDetails!.changedIndexes!.containsIndex(indexPath.item) { 
       let cell = self.imagesCollectionView?.cellForItemAtIndexPath(indexPath) as! ImagesCollectionViewCell 
       cell.imageAsset = changeDetails!.fetchResultAfterChanges[indexPath.item] as? PHAsset 
      } 
     } 
    } 
} 

、私が許可を与えるが、それは私に私の写真が表示されません。これは私のアプリケーションを再起動する必要があります

私はそれを共有することができますコードをしたい場合。しかし、私は上記のgithubコントローラを使用しています。

+0

あなたはそれを解決しましたか? @ジョン –

答えて

0

アプリを再起動すると正常に動作するので、おそらくビューコントローラ/コレクションビューを表示しているときに権限を求めているようです。問題は、ユーザーが自分の写真に自分の写真にアクセスすることを選択した後、コレクションビューが再読み込みを知らないことです。 PHPhotoLibrary.requestAuthorizationコールバックでは、あなたのアプリケーションを承認した後、ビューコントローラ/コレクションビューにリロードするよう指示する必要があります。以下の小さな例:

PHPhotoLibrary.requestAuthorization { status in 
switch status { 
case .Authorized: 
    /* RELOAD COLLECTION VIEW HERE */ 
case .Restricted: 
    <#your code#> 
case .Denied: 
    <#your code#> 
default: 
    // place for .NotDetermined - in this callback status is already determined so should never get here 
    break 
} 

}

関連する問題