"unrecognized selector sent to instance" 使用 SWRevealViewController 执行 SegueWithIdentifier 时出错
"unrecognized selector sent to instance" error during performSegueWithIdentifier, using SWRevealViewController
我是 iOS 开发的新手,我正在使用 John Lluch 著名的 SWRevealViewController 实现滑出式菜单。我正在关注此视频教程:
https://www.youtube.com/watch?v=5SUV1YY2yxQ
到目前为止我有这个故事板:
初始场景(显示视图控制器)正在尝试自动触发第一个两个转场(到 Table 视图和导航控制器)。
当我构建应用程序时,出现以下错误:
[SWRevealViewController initWithIdentifier:source:destination:]: 无法识别的选择器发送到实例 0x7d96f000
此错误发生在我在下面指出的行中,在 'loadStoryboardControllers' 方法中,在 SWRevealViewController.m 中(这是我初始 'RevealViewController' 场景的 class在故事板上)
- (void)loadStoryboardControllers
{
if ( self.storyboard && _rearViewController == nil )
{
//Try each segue separately so it doesn't break prematurely if either Rear or Right views are not used.
@try
{
//**ERROR OCCURS ON FOLLOWING LINE**
[self performSegueWithIdentifier:SWSegueRearIdentifier sender:nil];
}
@catch(NSException *exception) {}
@try
{
//**ANOTHER ALMOST IDENTICAL ERROR OCCURS ON FOLLOWING LINE**
[self performSegueWithIdentifier:SWSegueFrontIdentifier sender:nil];
}
@catch(NSException *exception) {}
@try
{
[self performSegueWithIdentifier:SWSegueRightIdentifier sender:nil];
}
@catch(NSException *exception) {}
}
}
出现错误时,'SWSegueRearIdentifier'的值为@"sw_rear",是正确的。这是我给 segue 的标识符。 SWRevealViewController 的工作方式是它首先查找标识为 "sw_rear" 的 segue,以便自动触发它。
可能是什么原因导致错误,或者我可以做些什么来进一步调试?
initWithIdentifier:source:destination:
是UIStoryboardSegue
class实现的方法。它在 segue 操作期间被调用。
在这种情况下,它是针对 UIViewController
subclass 调用的,导致异常。
在 InterfaceBuilder 中,确保 Segue 的自定义 class 是有效的 UIStoryboardSegue
subclass - 对于 SWRevealController,它应该是 SWRevealViewControllerSegueSetController
我是 iOS 开发的新手,我正在使用 John Lluch 著名的 SWRevealViewController 实现滑出式菜单。我正在关注此视频教程:
https://www.youtube.com/watch?v=5SUV1YY2yxQ
到目前为止我有这个故事板:
初始场景(显示视图控制器)正在尝试自动触发第一个两个转场(到 Table 视图和导航控制器)。
当我构建应用程序时,出现以下错误:
[SWRevealViewController initWithIdentifier:source:destination:]: 无法识别的选择器发送到实例 0x7d96f000
此错误发生在我在下面指出的行中,在 'loadStoryboardControllers' 方法中,在 SWRevealViewController.m 中(这是我初始 'RevealViewController' 场景的 class在故事板上)
- (void)loadStoryboardControllers
{
if ( self.storyboard && _rearViewController == nil )
{
//Try each segue separately so it doesn't break prematurely if either Rear or Right views are not used.
@try
{
//**ERROR OCCURS ON FOLLOWING LINE**
[self performSegueWithIdentifier:SWSegueRearIdentifier sender:nil];
}
@catch(NSException *exception) {}
@try
{
//**ANOTHER ALMOST IDENTICAL ERROR OCCURS ON FOLLOWING LINE**
[self performSegueWithIdentifier:SWSegueFrontIdentifier sender:nil];
}
@catch(NSException *exception) {}
@try
{
[self performSegueWithIdentifier:SWSegueRightIdentifier sender:nil];
}
@catch(NSException *exception) {}
}
}
出现错误时,'SWSegueRearIdentifier'的值为@"sw_rear",是正确的。这是我给 segue 的标识符。 SWRevealViewController 的工作方式是它首先查找标识为 "sw_rear" 的 segue,以便自动触发它。
可能是什么原因导致错误,或者我可以做些什么来进一步调试?
initWithIdentifier:source:destination:
是UIStoryboardSegue
class实现的方法。它在 segue 操作期间被调用。
在这种情况下,它是针对 UIViewController
subclass 调用的,导致异常。
在 InterfaceBuilder 中,确保 Segue 的自定义 class 是有效的 UIStoryboardSegue
subclass - 对于 SWRevealController,它应该是 SWRevealViewControllerSegueSetController