在SWRevealViewController上的didselect tableview上出错

时间:2015-12-02 06:49:12

标签: ios uitableview ios9 swrevealviewcontroller

当我使用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'

请帮帮我。

2 个答案:

答案 0 :(得分:6)

我有同样的问题,我通过将segue类型更改为" Custom"而不是" Push"

答案 1 :(得分:0)

根据this iOS open source codes添加更多信息。

很明显,setDestinationContainmentContextpush 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