2017-02-08 22 views
0

У меня есть 2 ViewController's: VC1 и VC2. В VC1 я:Как сбросить состояние исходного ViewController?

@IBAction func cliclOnBtn(_ sender: UIButton) { 
      CameraController.takePicture() 

    } 
... 



func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 

     print("didFinishPickingMediaWithInfo", picker.sourceType) 
     let _image = (info[UIImagePickerControllerOriginalImage] as! UIImage) 
     ImageView.image = _image 
     Images.append(_image) 
} 

В VC2 я передаю массив из _image, но когда я пытаюсь поддержать на VC1, фотографии с камеры, добавив, нажав еще раз. Как сбросить данные? Как сделать сброс массива фото, когда нажата кнопка «Назад»?

+0

использовать протокол для этого –

+0

@ pradeepchauhan_pc I» Это немного смущает это. Не могли бы вы мне помочь? – Diana

ответ

1

Вы можете реализовать viewWillAppear в VC1, а затем удалить все элементы изображения Array. Таким образом, когда вы нажмете обратно на VC2, у VC1 будет отображаться его массив Array.

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 

    Images.removeAll() 
} 

Btw, рассмотрите возможность переименования переменных экземпляра, нижний нижний предел начального символа, это хорошая практика.

+0

большое спасибо, много работает) – Diana

0

Использование протокола с делегатом для передачи данных обратно Вы можете обновить пользовательский интерфейс или код в функции делегата

import UIKit 

protocol DestinationViewControllerDelegate { 
    func updateData(text:String); // you can use Array, Dictonary, Modal as per your requirment 
} 

class DestinationViewController: UIViewController { 
    var delegate:FullCalendarViewDelegate! = nil 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 
    } 

    @IBAction func doneButton(sender: AnyObject) { 
     delegate?.updateData("Got new data") 
     self.navigationController?.popViewControllerAnimated(true) 
    } 
} 

// Sender Вид контроллера

class SenderViewController: UIViewController, DestinationViewControllerDelegate { 

    @IBOutlet weak var titleLabel: UILabel! 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view. 
    } 

    @IBAction func NextButton(sender: AnyObject) { 
     let storyBoard = UIStoryboard(name: "Main", bundle: nil) 
     let dash:DestinationViewControllerDelegate = storyBoard.instantiateViewControllerWithIdentifier("DestinationViewControllerDelegate") as! DestinationViewControllerDelegate 
     dash.delegate = self 
     self.navigationController?.pushViewController(dash, animated: true) 
    } 

    func updateData(text:String) { 
     titleLabel.text = text 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^