0

谁能发现我的错误?左栏按钮可以关闭,但是操作按钮会调用performSegue但 UI 不会更改 VC?调用showLinkPreviewController内部ViewDidLoad工作,所以显然这是目标/动作的问题?一个错误?

     let button = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissTimeline))
            timelineViewController.navigationItem.leftBarButtonItem = button

            let previewButton = UIBarButtonItem(barButtonSystemItem: .action, target: self, action: #selector(showLinkPreviewViewController))
            timelineViewController.navigationItem.rightBarButtonItem = previewButton

            // Create a navigation controller to hold the
            let navigationController = UINavigationController(rootViewController: timelineViewController)
            showDetailViewController(navigationController, sender: self)
        }
        func dismissTimeline() {
            dismiss(animated: true, completion: nil)
        }

        func showLinkPreviewViewController() {
            self.performSegue(withIdentifier: "showLinkPreviewViewController", sender: self)
        }

  // Create a navigation controller to hold the
        let navigationController = UINavigationController(rootViewController: timelineViewController)
        showDetailViewController(navigationController, sender: self)
4

2 回答 2

0

你应该像这样使用调度 -

dispatch_async(dispatch_get_main_queue(), ^{
    [self.navigationController pushViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"thirdScreen"] animated:YES];
});

或另一种方式-

dispatch_async(dispatch_get_main_queue(), ^{
   func showLinkPreviewViewController() {
            self.performSegue(withIdentifier: "showLinkPreviewViewController", sender: self)
        }

});

于 2016-12-02T06:21:34.470 回答
0

弄清楚了,segue 正在执行,但由于我没有将当前的 VC 从堆栈中解散,所以我看不到它:

修复:

  func showLinkPreviewViewController() {
        dismiss(animated: true, completion: nil)
        self.performSegue(withIdentifier: "showLinkPreviewViewController", sender: self)
    }
于 2016-12-02T20:24:40.417 回答