SWRevealViewController 的 Segue 问题

Posted

技术标签:

【中文标题】SWRevealViewController 的 Segue 问题【英文标题】:Segue issue with SWRevealViewController 【发布时间】:2015-01-03 19:20:11 【问题描述】:

我正在尝试从SWRevealViewController 的侧菜单页面中分离并将数据传输到另一个视图控制器。它崩溃了,我遇到了这个问题`-[UINavigationController setStr1:]: unrecognized selector sent to instance 0x7f8c92224c80 '

当我使用Reveal View Controller Push Controller 方法推送到另一个视图控制器时。

另一方面,在其他视图控制器中,我使用的是SHOW 而不是SWRevealViewControllerSeguePushController,它工作正常,不会崩溃。我正在使用故事板。

请问我的问题在哪里?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

    if ([segue.identifier isEqualToString:@"TESTTEST"]) 

        ViewController *destViewController = segue.destinationViewController;
        destViewController.str1 = @"data pass";
    

【问题讨论】:

这可能是因为您设置了ViewControllerstr1 属性,而不是您应该使用CustomViewController *destViewController 【参考方案1】:

错误表明 segue 目标视图控制器是导航控制器(因此不响应 setStr1 选择器)。所以看起来你的ViewController 嵌入在故事板的导航控制器中。如果是这样,请按如下方式更改您的代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
    if ([segue.identifier isEqualToString:@"TESTTEST"]) 
        UINavigationController *navigationController = segue.destinationViewController;
        ViewController *destViewController = navigationController.topViewController;
        destViewController.str1 = @"data pass";
    

【讨论】:

以上是关于SWRevealViewController 的 Segue 问题的主要内容,如果未能解决你的问题,请参考以下文章

SWRevealViewController 的 Segue 问题

SWRevealViewController 打开方法

SWRevealViewController - 推送下一个视图控制器故事板

如何通过单击按钮打开 SWRevealViewController?

SWRevealViewController 和传递对象

自定义 SWRevealViewController