Боковое меню раскадровки iOS 8.3

1) В настоящее время в моем приложении я пытался реализовать боковое меню, используя
SWRevealViewController, загруженный с https://github.com/John-Lluch/SWRevealViewController.

2) Файл раскадровки контроллера Reveal View — это класс SWRevealViewController, который я импортировал в свой проект SWRevealViewController.h и .m.

3) Показать файл раскадровки контроллера представления для tableviewcontroller и контроллера навигации, есть имя перехода, раскрывающее контроллер набора контроллеров представления.

4) последний файл раскадровки контроллера представления - это класс контроллера представления с
UIBarButtonItem *barButton

Вот мой код в viewcontroller.m

#import "SWRevealViewController.h"

 - (void)viewDidLoad 

{

 [super viewDidLoad];

SWRevealViewController *revealViewController = self.revealViewController;
if ( revealViewController )
{
    _barButton.target = self.revealViewController;
    _barButton.action = @selector(revealToggle:);
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}

}

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

6) В Сторибораде всего 4 файла

1.revealViewController, подключенный к контроллеру tableview (используя переход контроллера контроллера представления представления)

2.revealViewController, подключенный к навигационному контроллеру (используя переход контроллера контроллера отображения)

3. Контроллер навигации для Viewcontroller (используя переход контроллера корневого представления)

6) Мои файлы: SWRevealViewController.h&.m, ViewController.h&.m, AppDelegate.h&.m, tableviewcontroller.h&.m

Чтобы реализовать боковое меню, я сослался на этот http://www.appcoda.com/ios-programming-sidebar-navigation-menu/ IOS : Раскадровка и боковое меню как приложение Facebook


person Shrikant K    schedule 11.07.2015    source источник


Ответы (3)


Убедитесь, что в раскадровке установлены идентификаторы перехода SWSegueFrontIdentifier и SWSegueRightIdentifier. Эти два идентификатора объявлены в SWRevealViewController как

static NSString * const SWSegueRearIdentifier = @"sw_rear";
static NSString * const SWSegueFrontIdentifier = @"sw_front";

Вы должны создать два перехода для контроллера переднего вида и контроллера заднего вида из SWRevealViewController (который является начальным контроллером вида в раскадровке). И установите соответствующие идентификаторы перехода.

person Harshil    schedule 13.07.2015

Ошибка, которую я делал в именовании переходов раскадровки

1.revealViewController, подключенный к контроллеру tableview (используя переход контроллера контроллера представления представления)

2.revealViewController, подключенный к навигационному контроллеру (используя переход контроллера контроллера отображения)

Правильное решение для обоих вышеперечисленных случаев заключается в том, что переход раскадровки должен быть пользовательским переходом в классе перехода SWRevealViewControllerSegueSetController. Тогда это сработало для меня.

person Shrikant K    schedule 25.07.2015

Ваш лог что-нибудь говорит?

Черный экран обычно является отсутствием начального контроллера просмотра.

Убедитесь, что вы выбрали контроллер представления, который хотите использовать в качестве начального контроллера представления, и установили флажок ("Исходный контроллер представления") в редакторе раскадровки.

person Simon Degn    schedule 11.07.2015
comment
Да, я проверил, мой первоначальный контроллер представления — rejectViewController. - person Shrikant K; 11.07.2015
comment
Я вижу здесь, что в версии 2.3 исправлена ​​проблема с инициализацией. У вас есть эта версия, а не более ранняя, @ShrikantKankatti? - person Simon Degn; 11.07.2015
comment
М, проверяя это. - person Shrikant K; 11.07.2015
comment
Неа! все еще сталкивается с тем же. У вас есть стороннее боковое меню? - person Shrikant K; 11.07.2015
comment
У меня был пользователь MFSideMenu ранее с успехом. Похоже, это почти то же самое, что и ваш SWRevealVC. - person Simon Degn; 11.07.2015