MMDrawerController с пунктом меню StoryBoard

Я использую MMdrawerController для отработки контроллеров боковых ящиков в своем проекте. Но когда я нажимаю кнопку меню с левой стороны, а затем нажимаю на выбранную строку, она открывается просто отлично, но соответствующий вид не показывает пункт меню (кнопка меню ящика) слева от вида. Поэтому я не могу сделать дальнейший выбор. И я использую раскадровку.

Пример кода из MydrawerController Я перемещаюсь по ячейкам в представлении таблицы ящика.

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self.delegate drawerMenuViewController:self didSelectMenuSection:indexPath.row];
       switch ((MMDrawerMenuViewControllerSection)indexPath.row) {
        case MMDrawerMenuViewControllerSectionProfile:

            [self.mm_drawerController setCenterViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"MMProfileViewController"] withCloseAnimation:YES completion:nil];


            break;

        default:
            break;
    }


}

Мой центральный вид просто делает следующее:

-(void)setupLeftMenuButton{
    MMDrawerBarButtonItem *leftDrawerButton=[[MMDrawerBarButtonItem alloc]initWithTarget:self action:@selector(leftDrawerButtonPress:)];
    [self.navigationItem setLeftBarButtonItem:leftDrawerButton animated:YES];


}


- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(void)leftDrawerButtonPress:(id)sender{
    [self.mm_drawerController toggleDrawerSide:MMDrawerSideLeft animated:YES completion:nil];
}

-(void)doubleTap:(UITapGestureRecognizer*)gesture{
    [self.mm_drawerController bouncePreviewForDrawerSide:MMDrawerSideLeft completion:nil];
}

И мой другой контроллер представления, который не может отображать элемент меню, имеет те же обработчики кнопок, что и выше. Но все еще не показывает пункт меню.


person user3079947    schedule 10.07.2014    source источник


Ответы (1)


Невозможно вставить контроллер в centerView из бокового вида, я сделал это, но мне нужно использовать делегата, я определил протокол в левый боковой контроллер, например

@protocol LGSettingDrawerControllerDelegate <NSObject>

- (void)pushControllerWithIndex:(NSIndexPath*)indexPath;

@end

@property (nonatomic, weak) id<LGSettingDrawerControllerDelegate> delegate;

И в

in

.м файл

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    if (_delegate != nil) {
        [_delegate pushControllerWithIndex:indexPath];
    }
    [self.menuContainerViewController setMenuState:MFSideMenuStateClosed];
}

и этот метод делегата нажимает на контроллер центрального вида, например

[self.mm_drawerController setCenterViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"MMProfileViewController"] withCloseAnimation:YES completion:nil];
person Retro    schedule 10.07.2014
comment
На самом деле моя проблема заключается в том, что MenuItem не отображается в выбранном представлении. Вместо этого боковое меню ящика отлично работает, сдвигая представление слева направо. У меня проблема, почему не отображается левая кнопка - person user3079947; 10.07.2014
comment
Вы можете добавить изображение, чтобы лучше понять вашу проблему? - person Retro; 10.07.2014