Как удалить (выскочить) вид из ДРУГОГО вида? - PullRequest
1 голос
/ 12 августа 2010

У меня 2 просмотра. Одним из них является «viewheader», а другим - «viewContent» (добавляется как подпредставление).

'viewContent' содержит TableView (основанный на UINavigationController), и TableView может перейти к DetailView (UIViewController). (см. изображение ниже)

Мой вопрос: Как я могу удалить (вывести) DetailView с помощью UIButton ОТ 'headerView'.

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

Спасибо

// add "fixed" Header
- (void)loadView {
    viewHeader = [[HeaderViewController alloc] initWithNibName:@"HeaderViewController" bundle:nil];
    self.view = viewHeader.view;
}

// add content view
- (void)viewDidLoad {
    [super viewDidLoad];

    viewContent = [[MainContentViewController alloc] initWithNibName:@"MainContentViewController" bundle:nil];

    CGRect viewFrame = CGRectMake(0.0f, 164.0f, 320, 316);
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewContent];
    [navController setNavigationBarHidden:YES];
    [navController.view setFrame:viewFrame];
    viewHeader.contentNavView = navController; // <<<< CAN'T POP THE VIEW by passing UINavigationController to "header view"
    [self.view addSubview:navController.view];
}

Ответы [ 2 ]

0 голосов
/ 12 августа 2010

Я нашел свою ошибку.Определение 'contentNavView' внутри 'viewheader' было неверным

Изменил его с UIViewController на UINavigationController.

@interface HeaderViewController : UIViewController {
    UINavigationController *contentNavView;
}
...

Вызов

[contentNavView pushViewController:aViewController animated:NO];

работает.

0 голосов
/ 12 августа 2010

Вы должны каким-то образом отправить сообщение removeFromSuperview в подробный вид при нажатии кнопки в представлении заголовка (т. Е. Срабатывает IBAction).Вы можете добиться этого, либо сделав подробный вид свойством контроллера представления заголовка, чтобы иметь возможность вызывать removeFromSuperview подробного представления в представлении заголовка IBAction.Или, если вы предпочитаете слабую связь (что и следует), опубликуйте уведомление из IBAction в представлении заголовка и зарегистрируйте это уведомление в подробном представлении с помощью метода, который удаляет подробное представление из представления заголовка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...