2014-01-21 11 views

Antwort

3

enter image description here

Ich tat dies in geschickter durch Hinzufügen dieser Erweiterung von außerhalb der Bibliothek:

extension MWPhotoBrowser { 

    public override func viewWillLayoutSubviews() { 
     super.viewWillLayoutSubviews() 

     if let _ = valueForKey("_gridController") as? MWGridViewController { 
      let leftButtonItem = editButtonItem() 
      //leftButtonItem.tintColor = QorumColors.ThemeWhite 
      navigationItem.leftBarButtonItem = leftButtonItem 
     } else { 
      navigationItem.leftBarButtonItem = nil 
     } 
    } 

    public override func setEditing(editing: Bool, animated: Bool) { 
     super.setEditing(editing, animated: animated) 

     if editing { 
      navigationItem.leftBarButtonItem?.title = "Delete" 
      //navigationItem.leftBarButtonItem?.tintColor = QorumColors.Nickname 

      displaySelectionButtons = true 
      title = "Delete Photos" 

      let gridController = valueForKey("_gridController") as! MWGridViewController 
      gridController.selectionMode = displaySelectionButtons 
      gridController.collectionView!.reloadData() 
     } else { 
      let nav = self.navigationController as! TempPresentVC 
      let photosToDelete = nav.selectedPhotos 

      let afterButtonPress = { 
       //self.navigationItem.leftBarButtonItem?.tintColor = QorumColors.ThemeWhite 

       self.displaySelectionButtons = false 
       self.updateNavigation() 

       let gridController = self.valueForKey("_gridController") as! MWGridViewController 
       gridController.selectionMode = self.displaySelectionButtons 
       gridController.collectionView!.reloadData() 
      } 

      guard photosToDelete.count > 0 else { 
       afterButtonPress() 
       return 
      } 

      let title = "Delete Photo" 
      let message = "Are you sure you want to delete these photos?" 
      let action = "Delete" 
      let cancelAction = "Cancel" 

      let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert) 
      let declineButton = UIAlertAction(title: cancelAction, style: .Default, handler: { (action: UIAlertAction) in 
       afterButtonPress() 
      }) 
      let acceptButton = UIAlertAction(title: action, style: .Default, handler: { (action: UIAlertAction) in 
       afterButtonPress() 
      }) 
      alert.addAction(declineButton) 
      alert.addAction(acceptButton) 
      UIApplication.topMostController().presentVC(alert) //private lib 
     } 
    } 
} 



class TempPresentVC: UINavigationController, MWPhotoBrowserDelegate { 
    var selectedPhotos = [Int]() 

    func photoBrowser(photoBrowser: MWPhotoBrowser!, photoAtIndex index: UInt, selectedChanged selected: Bool) { 
     if selected { 
      selectedPhotos.append(index.toInt) 
     } else { 
      selectedPhotos.removeObject(index.toInt) 
     } 
    } 
} 

Dies ermöglicht es Ihnen nicht um ein Foto in einem einzigen Einzelbild-Modus zu löschen, aber ausgehend Von dieser Codebasis aus wäre dieser Teil einfach zu implementieren.

Vorsicht, einige der Dinge, die ich im Inneren verwende, sind private Funktionen, die ich in meinen anderen Klassen geschrieben habe, was sie tun sollten, sollte jedoch klar sein.

Verwandte Themen