当我使用SWRevealViewController
类使用滑出菜单时,它在iphone模拟器中正常工作。但是当我尝试在iphone 5设备中运行进行测试时,选择菜单按钮时会显示滑出菜单正确,但不幸的是,在选择单元格时,它会崩溃并显示以下错误。但模拟器中没有此类错误。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
indexPath = [[self tableView] indexPathForSelectedRow];
if (indexPath.row==0) {
[self performSegueWithIdentifier:@"home" sender:indexPath];
}
else if (indexPath.row==1) {
[self performSegueWithIdentifier:@"cartme" sender:indexPath];
}
else {
[self performSegueWithIdentifier:@"changelocation" sender:indexPath];
}
}
由于未捕获的异常而终止应用 'NSInvalidArgumentException',原因:' - [SWRevealViewControllerSegue setDestinationContainmentContext:]:发送到的无法识别的选择器 实例0x175c5f90'
请帮帮我。
答案 0 :(得分:6)
我有同样的问题,我通过将segue类型更改为" Custom"而不是" Push"
答案 1 :(得分:0)
根据this iOS open source codes添加更多信息。
很明显,setDestinationContainmentContext
是push
segue的方法。因此,自定义segue应选择Custom
segue类型,而不是Push
。
来自UIStoryboardSegue
的子类没有这样的方法,所以它会崩溃。
/* Generated by RuntimeBrowser
Image: /System/Library/Frameworks/UIKit.framework/UIKit
*/
@interface UIStoryboardPushSegueTemplate : UIStoryboardSegueTemplate {
int _destinationContainmentContext;
int _splitViewControllerIndex;
}
@property (nonatomic) int destinationContainmentContext;
@property (nonatomic) int splitViewControllerIndex;
- (int)destinationContainmentContext;
- (void)encodeWithCoder:(id)arg1;
- (id)initWithCoder:(id)arg1;
- (id /* block */)newDefaultPerformHandlerForSegue:(id)arg1;
- (void)setDestinationContainmentContext:(int)arg1;
- (void)setSplitViewControllerIndex:(int)arg1;
- (int)splitViewControllerIndex;
@end