委托方法不适用于SWRevealViewController

时间:2013-12-19 10:36:34

标签: ios iphone objective-c delegates slide

我想刷新我在幻灯片菜单上的主视图确实选择了方法

我已经使用SWRevealViewController加载我的幻灯片菜单并且工作正常但我不明白如何将委托分配给幻灯片菜单控制器并使用它?

对于john lusch的精彩图书馆,

这里是the link

幻灯片菜单controller.h

@protocol SlideViewControllerDelegate
@required
-(void)menuViewControllerDidFinishWithCategoryId:(NSInteger)categoryId;
@end

 @interface SlideViewController : 

UIViewController<UITableViewDataSource,UITableViewDelegate>
{
    __weak id<SlideViewControllerDelegate> slideDelegate;
}

@property (nonatomic, weak) id <SlideViewControllerDelegate> slideDelegate;
@end

幻灯片菜单controller.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.slideDelegate menuViewControllerDidFinishWithCategoryId:indexPath.row];
}

viewController.h

@interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate,SlideViewControllerDelegate>

viewController.m

在我看来做了加载方法

SlideViewController *slideView = [[SlideViewController alloc]init];
slideView.slideDelegate = self;

- (void)menuViewControllerDidFinishWithCategoryId:(NSInteger)categoryId
{
    self.categId = [catIdArray objectAtIndex:categoryId];
    NSLog(@"cat id %@",categId);
    [self getQuestions];
    [self.feedTableView reloadData];
}

//永远不会执行上面的日志 所以我认为将委托分配给swreveal视图控制器幻灯片菜单

可能是错的

3 个答案:

答案 0 :(得分:3)

让它设置一个委托给一个揭密控制器做这样的

[(SlideViewController *)self.revealViewController.rearViewController setSlideDelegate:self];

答案 1 :(得分:1)

也许你应该通过

初始化SlideViewController
- (id)initWithRearViewController:(UIViewController *)rearViewController frontViewController:(UIViewController *)frontViewController;

README.md中说明。

答案 2 :(得分:0)

删除这些行:

{
    __weak id<SlideViewControllerDelegate> slideDelegate;
}

您的财产:

@property (nonatomic, weak) id <SlideViewControllerDelegate> slideDelegate;

它是应该的。