Как отклонить pop over view в просмотре контента? - PullRequest
1 голос
/ 30 июня 2011

см. Снимок экрана ясно, чтобы понять, что я имею в виду enter image description here вы можете видеть, что я добавляю навигационный элемент в моем представлении всплывающих окон

Я хотел бы, чтобы я мог отклонить представление всплывающих окон

Но этоКажется, только вкладка ячейки под представлением всплывающего окна

Представление всплывающего окна будет отклонено, я пытаюсь добавить этот метод

[self.view removeFromSuperview];

Это только удалить представление таблицы, рамка представления всплывающего окна все еще там, только без просмотра содержимого

Любой ответ будет полезен:)

Спасибо

Веббер

/ ****** РЕДАКТИРОВАТЬ ****** / Я использую WEPopoverView в своем проекте

И это код, который я создаю всплывающее представление, когда я выбираю представление таблицы

if (indexPath.row==2) {
DaysOfWeek *popView = [[DaysOfWeek alloc]init];
UINavigationController *navPopView = [[UINavigationController alloc] initWithRootViewController:popView];
    if (self.popoverController) {
       [self.popoverController dismissPopoverAnimated:YES];
       self.popoverController = nil;
}
else {
        self.popoverController = [[[WEPopoverController alloc] initWithContentViewController:navPopView] autorelease];
        CGRect frame = [tableView cellForRowAtIndexPath:indexPath].frame;
        [self.popoverController presentPopoverFromRect:frame 
                                                    inView:self.view            permittedArrowDirections:UIPopoverArrowDirectionDown|UIPopoverArrowDirectionUp
                                  animated:YES];
                        }
                    }

/ ****** EDIT2 ****** / Я пытаюсь добавить кнопку «Готово», когда я создаю всплывающее окно, вот код, но отображается только навигация, нет кнопки «Готово»

DaysOfWeek *popView = [[DaysOfWeek alloc]init];
UINavigationController *navPopView = [[UINavigationController alloc] initWithRootViewController:popView];
navPopView.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(hidePopView)];

Ответы [ 3 ]

1 голос
/ 30 июня 2011

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

, затем используйте:

for (UIView *tempView in [self.view subviews]) {
    if ([tempView tag]==urTag) {
        [tempView removeFromSuperview];
    }
}

Это извлекает все подпредставления и затем удаляет тольковаше всплывающее окно

0 голосов
/ 01 июля 2011
 DaysOfWeek *popView = [[DaysOfWeek alloc]init];
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeContactAdd];
[doneButton addTarget:self action:@selector(hidePopView) forControlEvents:UIControlEventTouchUpInside];
popView.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:doneButton] autorelease];
UINavigationController *navPopView = [[UINavigationController alloc] initWithRootViewController:popView];

Это также может решить проблему!

0 голосов
/ 30 июня 2011

Я думаю, что простое освобождение вашего self.popoverController будет корректно выполнять отклонение, включая все суперпредставления.

Вы также можете взглянуть на метод dealloc в WEPopoverController, чтобы увидеть, какие видывовлечен и должен быть удален:

    [self dismissPopoverAnimated:NO];
    [contentViewController release];
    [containerViewProperties release];
    [passthroughViews release];

В любом случае, единственное преимущество, которое я вижу, это возможность звонить dismissPopoverAnimated с YES.

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

РЕДАКТИРОВАТЬ:

Как вы можете подключить готовую кнопку к вашему контроллеру?

Сделать вашу кнопку доступной через свойство только для чтения DaysOfWeek;затем в вашем контроллере, когда вы создаете DaysOfWeek, выполните:

 DaysOfWeek *popView = [[DaysOfWeek alloc]init];
 [propView.doneButton addTarget:self action:@selector(fullyDismissPopover) forControlEvents:UIControlEventTouchUpInside];

В fullDismissPopover вы вызываете release или вызываете последовательность функций, выделенных выше (но я думаю, будет лучше, если release).

...