В Rubymotion как получить коллбэк с контроллера уволенного вида

В строке таблицы нажмите ссылку на ячейку, чтобы представить контроллер представления (чтобы выбрать из списка изображений)

  def open_selector             
     view_b = ImagesController.new  #using rmq hence .new           
     @@cell.superview.superview.controller.presentViewController view_b, animated:true, completion:nil
  end

Внутри контроллера изображений - я уволил, когда закончил выбор - но как я могу сообщить, что ячейка была закрыта?

def collectionView(view, didSelectItemAtIndexPath: index_path)

  self.dismissViewControllerAnimated(true, completion: lambda{})

end

1 ответ

Я бы предложил UICollectionViewController делегат, чтобы он мог перезвонить сам. Так:

class MyCollectionViewController < UICollectionViewController
  attr_writer :parent_controller

  # ...

  def collectionView(view, didSelectItemAtIndexPath: index_path)
    self.dismissViewControllerAnimated(true, 
                                       completion: lambda{
                                       @parent_controller.collection_did_close(self)
                                       })
  end

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

Другие вопросы по тегам