2017-07-22 5 views
0

Ich habe programmatisch Sammlung Ansicht und setzen Eigenschaft multipleSelectionOn mit Standardwert falsch
Bitte beachten Sie meine Sammlung Ansicht Code:Wie ändern Wert Eigenschaft in Instanzklasse in iOS Swift 3?

import UIKit 

class GalleryCollectionViewController: UICollectionViewController , UICollectionViewDelegateFlowLayout { 

    open var multipleSelectionOn:Bool = false 

    override init(collectionViewLayout layout: UICollectionViewLayout) { 

     super.init(collectionViewLayout: layout) 
     collectionView?.collectionViewLayout = layout 
     collectionView!.register(GalleryCollectionViewCell.self, forCellWithReuseIdentifier: "cell") 

    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 

    print(multipleSelectionOn) 

    } 
    **//AND SOME ANOTHER CODE** 

} 

Und es so nennen:

let layout = UICollectionViewFlowLayout() 
let galleryColVC = GalleryCollectionViewController(collectionViewLayout: layout) 
galleryColVC.multipleSelectionOn = true 
let galleryNav = UINavigationController(rootViewController: galleryColVC) 
self.present(galleryNav, animated: true, completion: nil) 

Aber Ändern die Eigenschaft in aufrufenden Codes nicht festgelegt und zeige mir nur false Wert.

Wie behebt man das?

+0

Haben Sie multipleSelectionOn Wert im galleryColVC oder wo greifen Sie multipleSelectionOn nachdem Sie zuweisen es wahr zu bekommen? –

+0

Ja, ich möchte es ändern und darauf zugreifen @UdayaSri –

+0

versuchen, es auf True nach self.present (galleryNav, animiert: True, Abschluss: Nil). Es sollte funktionieren. –

Antwort

0

Diese Arbeit für mich.

let storyboard = UIStoryboard(name: "Main", bundle: nil) 
    let galleryColVC = storyboard.instantiateViewController(withIdentifier: "GalleryViewController") as! GalleryViewController 
galleryColVC.multipleSelectionOn = true 
present(galleryColVC, animated: true, completion: nil) 

Fügen Sie Ihre Storyboard-ID als "GalleryViewController" für GalleryViewController hinzu.

0

fand ich die Lösung:

var multipleSelectionOn:Bool = false { 
     didSet { 
      print("VALUE IS: \(multipleSelectionOn)") 
      //Get true 
     } 
    }