【问题标题】:Perform Segue from another UIViewController从另一个 UIViewController 执行 Segue
【发布时间】:2016-09-20 15:11:44
【问题描述】:

我正在使用 SWRevealViewController 库作为主视图中的侧边菜单。我正在尝试从主视图(带有导航栏的那个我想传递到下一个视图)而不是后视图(带有菜单表的那个)执行转场,所以我正在尝试执行继续使用该视图控制器而不是“自我”。但是,我收到一条错误消息,指出带有标识符的 segue 不存在(确实存在)。

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

    switch indexPath.row {
    case 0:
        print("case 0")
        ViewController().goToView("to_playlist")
        break
    default:
        break
    }
}

class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, UITableViewDataSource, UITableViewDelegate {
    func goToView(a: String) {
        performSegueWithIdentifier(a, sender: self)
    }
}

有人可以告诉我该怎么做吗?

谢谢。

【问题讨论】:

    标签: ios swift uiviewcontroller segue swrevealviewcontroller


    【解决方案1】:

    不要忘记从 StoryBoard 中设置标识符:

    //objc code
    SettingsController *view = [[SettingsController alloc] init];
    view.blahBlah = self.blah;
    [self.navigationController pushViewController:view animated:YES];
    

    【讨论】:

      【解决方案2】:

      我也在使用 SwRevealViewController。这种安排将有助于获得所需的行为。检查您是否在主视图中缺少导航控制器(您如何设置主视图控制器。我认为您犯了错误)这就是您无法导航的原因。

      问我你有任何其他疑问。希望这会对你有所帮助。

      【讨论】:

      • 谢谢.. 我现在遇到的问题是导航栏也在后控制器上。你知道我怎么能把它放在前面吗?
      • 你想从主视图推送吗?那么唯一的选择就是创建一个 NavController。嵌入主视图。这是您执行 segue 的唯一选择。如果可能,我会将代码发布给您
      • 谢谢你..这就是我正在做的。但是由于导航表在后置控制器上,所以导航栏并没有转移到下面的视图!
      • 很好。快乐编码
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多