Реализация ECSlidingViewController

Я пытаюсь реализовать ECSlidingViewController и использую переходы в своих раскадровках. У меня проблема, когда viewDidLoad MainViewController вызывается дважды и

self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];

всегда устанавливается в ноль. Дополнительная информация.

  1. Экран входа в систему ( InitViewController ) ------через переход ---------> MainViewController.

В моем MainViewController у меня есть следующий код.

-(void)addMenuViewControllerWithGesture{
self.view.layer.shadowOpacity = 0.075f;
self.view.layer.shadowRadius = 10.0f; 
self.view.layer.shadowColor = [UIColor blackColor].CGColor;
if (![self.slidingViewController.underLeftViewController isKindOfClass:[rsMenuViewController class]]) {

self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];
}
}

В моем InitViewController (вход в систему)

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

MainViewController *controller = segue.destinationViewController;

// setting some values before going to the next view.

controller.id = 0;

controller.name = @"harish";

self.topViewController = controller;

}

При этом viewDidLoad объекта MainViewController вызывается дважды, а приведенное ниже значение всегда устанавливается равным нулю.

self.slidingViewController.underLeftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Menu"];

Надеюсь понятно. Я как бы застрял здесь и ищу решение.

Спасибо


person Harish    schedule 26.06.2013    source источник


Ответы (1)


Хорошо, я понял это. После долгого и мучительного опыта я понял это. Я задал аналогичный вопрос здесь: Меню добавления iOS Вызывает сбой при не первом просмотре и, в конце концов, ответил на него. Я только недавно наткнулся на ваш вопрос.

Допустим, у вас есть множество файлов (.m и .h для каждого):

Инитвиевконтроллер

MenuViewController

MainViewController

ДинамикиВид

Цель состояла в том, чтобы переключиться с MainViewController с помощью кнопки не в меню слайдов на SpeakersView, но это напрямую приводило к тому, что меню слайдов было пустым, как указал Филлип Миллс.

Вместо этого я поместил это в InitViewController.h прямо под @Interface:

@property (nonatomic, retain) NSString *location;

Затем это в разделе @implementation в InitViewController.m:

@synthesize location;

Первоначально у меня было это под ViewDidLoad в InitViewController.m:

self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Main"];

Я изменил это на это:

if([location length] == 0){location = @"Main";}
self.topViewController = [self.storyboard instantiateViewControllerWithIdentifier:location];

Таким образом, если переменная была пустой, по умолчанию использовалась @"Main".

Затем в MainView.m, где я выполняю код после нажатия кнопки, у меня есть это:

InitViewController *ini;
ini = [self.storyboard instantiateViewControllerWithIdentifier:@"Init"];
ini.location = @"Speakers";

И вуаля, вид прекрасно переключается на динамики. Точнее, он переключается на InitViewController, который автоматически переключается на динамики или что-то еще, что я установил.

Надеюсь, это поможет вам.

Любые вопросы, дайте мне знать.

person Marcel Marino    schedule 08.08.2013