0

Я использую ECSliding, и у меня есть эта проблема!ECSliding, Referece RightController в AppDelegate

У меня есть Topview и два меню,

left (LeftViewController) 
right (RightViewController) 

как UIViewController.

Я хочу дать ссылку на правый контроллер, на контроллер просмотра слева, в AppDelegate.

я сделал в LeftViewController.h:

#import "RightViewController.h" 
@class RightViewController; 
@property (strong, monatomic) RightViewController *rightView; 

в didFinishLaunchingWithOptions в AppDelegate.m:

RightViewController *rightViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Right"]; 
LeftViewController *leftViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"Left"]; 

leftViewController.rightView = rightViewController; 

, но я получаю эту ошибку в AppDelegate.m на self.storyboard:

Property 'storyboard not found on object of type 'AppDelegate *

Как я могу решить эту проблему?

+0

@CodeMonkey вопрос был для другой ошибки :)) контроллер вид не был признан компилятором :) – danypata

+0

Попробуйте посмотреть на код меню ecslidingmenu. В раскадровке нельзя ссылаться как на делегат приложения. Попробуйте объявить раскадровку, а затем создайте экземпляр контроллера представления с идентификатором раскадровки. –

+0

@ danypata Я думаю, что вы имеете в виду мой другой вопрос, я решил добавить '@class RightViewController;' – Tortuga

ответ

0

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

self.slidingViewController.underLeftViewController 

При его использовании вы должны проверить класс и отданных ссылка:

LeftViewController *leftController = self.slidingViewController.underLeftViewController; 

if ([leftController isKindOfClass:[LeftViewController class]]) { 
    leftController. ...; 
} 
+0

Мне нужна ссылка на вызов в 'LeftViewController' таймера, который находится в' RightViewController', используя 'self.slidingViewController.underLeftViewController. (?)' Nothing appera at (?) – Tortuga

0

Прежде всего AppDelegate не имеет свойства storyboard это свойство UIViewController.

Во-вторых, если вы хотите загрузить основной раскадровку и экземпляр контроллера вид вы должны попробовать следующее:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"YourStoryboardName" bundle:nil]; 
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"YourViewController"]; 

Также убедитесь, что вы правильно установить идентификатор вид контроллеров.

+0

У меня есть две раскадровки, что мне нужно положить в (?) 'UIStoryboard * sb = [UIStoryboard (?) Bundle: nil]; '? – Tortuga

+0

Вам нужно будет загрузить раскадровку, в которой есть 'RightViewController' и' LeftViewController', объявленные в. – danypata

+0

обе раскадровки имеют оба контроллера, в 'didFinishLaunchingWithOptions' первое, что я делаю, это' [self initializeStoryBoardBasedOnScreenSize] ' – Tortuga

Смежные вопросы