У меня проблема с представлением контроллера представления в контроллере представления деталей главного контроллера представления деталей. Возможно ли это?

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

Если возможно, тогда помогите мне. Если нет, то посоветуйте мне как-нибудь это сделать.

0
Tanvir Nayem 17 Июл 2017 в 13:48

4 ответа

Вы можете попробовать это в раскадровке, например,

В раскадровке выберите «Переход как настоящее» модально, перейдите в Инспектор удостоверений и выберите «Текущий контекст» для параметра «Презентация».

Надеюсь, это поможет.

1
Md.Harish-Uz-Jaman Mridha Raju 18 Авг 2017 в 12:57
Это должен быть принятый ответ. Также, если вы представляете программно, выполните: viewController.modalPresentationStyle = .overCurrentContext
 – 
SN81
20 Сен 2019 в 14:59

Это возможно, но ваши данные VC должны быть контроллером навигации, чтобы вы могли представить.

0
Pedro Pinho 17 Июл 2017 в 13:52

Попробуй это :

class func presentViewCoontroller(vc : UIViewController) -> Void{
        let viewController : UIViewController = ((UIApplication.shared.delegate as! AppDelegate).window?.rootViewController)!
        if (viewController.presentedViewController != nil)  {
            viewController.presentedViewController?.present(vc, animated: true, completion: nil)
        }
        else{
            viewController.present(vc, animated: true, completion: nil)
        }
    }

Звонок

self.presentViewCoontroller(vc: yourcontroller)
0
KKRocks 17 Июл 2017 в 13:59
Я не хочу просматривать viewController на всем экране. Я просто хочу просмотреть viewController в контроллере представления сведений. Когда я нажимаю на кнопку, должно произойти это событие.
 – 
Mr. Tann
18 Июл 2017 в 05:32

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

class MasterViewController : UIViewController{
static var masterVC : UIViewController?
      override func viewDidLoad() {
        super.viewDidLoad()
       MasterViewController.masterVC = self
      }
}


class DetailViewController : UIViewController{

          override func viewDidLoad() {
            super.viewDidLoad()
          }

          @IBAction func didTapButton(_ sender: UIButton) {
              MasterViewController.masterVC?.present(<newViewController>, animated: true, completion: nil)
          }
}
0
Preeti Rani 17 Июл 2017 в 14:20
Ваш код представляет контроллер представления в полноэкранном режиме, но я этого не хочу. Я хочу представить newViewController только на экране контроллера подробного представления. В этот раз я также хочу видеть на своем экране свой главный контроллер табличного представления.
 – 
Mr. Tann
17 Июл 2017 в 20:15
Можете ли вы поделиться своим представлением (главным контроллером), связанным с этим кодом
 – 
Preeti Rani
18 Июл 2017 в 14:06