【问题标题】:Unable to move the user to initialview controller from the second view controller无法将用户从第二个视图控制器移动到初始视图控制器
【发布时间】:2016-08-25 15:12:27
【问题描述】:

我正在使用 SWRevealViewController 创建滑动菜单。

当用户按下初始视图控制器的条形按钮时,必须打开一个新的第二个视图控制器。当从第二个视图控制器按下 barbutton 时,用户必须再次导航回初始视图控制器。

我使用以下代码将使用的从第二个视图控制器移动到初始视图控制器。

 SWRevealViewController *revealViewController = self.revealViewController;
    if ( revealViewController )
    {
        [self.sidebarButton setTarget: self.revealViewController];
        [self.sidebarButton setAction: @selector( goBack )];
        [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
    }

但我收到以下错误消息,

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SWRevealViewController goBack]: unrecognized selector sent to instance

以下是我的 goBack 方法

- (IBAction)back:(id)sender {

    [self.navigationController popToRootViewControllerAnimated:YES];

} 

【问题讨论】:

  • 哪个视图控制器实现了goBack?那应该是按钮的目标。现在 SWRevealViewController 是目标,但它没有实现该方法。

标签: ios objective-c slidingmenu swrevealviewcontroller


【解决方案1】:

其实你是把按钮和动作装箱了,但是你忘了实现goBack的方法,

-(Void) goBack
{
// do something
}

Update-2

不在goBack 它是goBack:

  - (IBAction)back:(id)sender {

[self.navigationController popToRootViewControllerAnimated:YES];

} 

完整答案是

SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
    [self.sidebarButton setTarget: self.revealViewController];
    [self.sidebarButton setAction: @selector( goBack: )];
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}


  - (IBAction)back:(id)sender {

[self.navigationController popToRootViewControllerAnimated:YES];

} 

编辑答案

SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
    [self.sidebarButton setTarget: self.revealViewController];
    [self.sidebarButton setAction: @selector( revealToggle: )];
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
} 

【讨论】:

  • 不,兄弟...我已经声明了它,但它仍然崩溃
  • 你能不能同时更新问题是你实现了revealViewController.delegate = self;
  • 我应该在哪里实现revealViewController.delegate = self;
  • @user22312412 - 检查完整答案和更新的答案兄弟,
  • 我收到'NSInvalidArgumentException', reason: '-[SWRevealViewController goBack:]: unrecognized selector sent to instance
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多