два UINavigationController в одном viewcontroller - PullRequest
1 голос
/ 27 марта 2012

У меня возникла проблема с UINavigationalControllers для iPad.

Проблема:

UINavigationController1 UINavigationController2

Помещено в UIViewController.

Когда событие произошло в UINavigationController1 .... действие должно быть выполнено в UINavigationController2

Как-то так ..... Когда Щелчок произошел в UITableViewCell в UINavigationController1,переход между представлениями должен быть выполнен в UINavigationController2

Нужно несколько советов, как справиться с этим ...

Заранее спасибо

1 Ответ

0 голосов
/ 27 марта 2012

Вы должны использовать делегирование, чтобы сделать это

добавить это в .h ViewController1 над @ реализацией

@protocol ViewController1Delegate;

, а затем это ниже @ end

@protocol ViewController1Delegate <NSObject>

- (void)viewController1:(id)controller didDoAction;

@end

затем объявите свойство типа ViewController1Delegate в контроллере

@property (nonatomic, assign) id <ViewController1Delegate> delegate;

, затем добавьте его в .m ViewController1

@synthesize delegate;

и в действии вызовите метод делегата

if ([self.delegate respondsToSelector:@selector(viewController1:didDoAction)]) {
    [self.delegate performSelector:@selector(viewController1:didDoAction) withObject:self];
}

Теперь, когда на ViewController2 .h impot ViewController1.h

#import ViewController1.h

Теперь, когда на ViewController2 .h слушаем такого делегата, как это

@interface ViewController2 : UIViewController <ViewController1Delegate>

, а затем в.m реализует метод

- (void)viewController1:controller didDoAction
{
  //implement
}

, когда создаются экземпляры контроллеров представления, необходимо установить делегат для viewController1 для viewController2, как это

viewController1 = [ViewController1 new];
viewController2 = [ViewController2 new];
viewController1.delegate = viewController2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...