Изменить предпочтительный размер содержимого PopOverViewController на лету

Я пытаюсь изменить предпочтительный размер содержимого UIPopOverController внутри childViewController.

Во-первых, я представляю PopOverViewController таким образом

 DateViewController *dateView = [[DatePickerViewController alloc] initWithNibName:@"DateViewController" bundle:nil];

        UINavigationController *navController = [[UINavigationController alloc]initWithRootViewController:dateView];


        m_tableCell = (NotesCell *)[m_tableView cellForRowAtIndexPath:indexPath];


            popViewController = [[UIPopoverController alloc] initWithContentViewController:navController];
            popViewController.backgroundColor = [[AppManager instance].themeManager navigationBarColor];
            popViewController.delegate = self;


                //the rectangle here is the frame of the object that presents the popover,
                //in this case, the UIButton…


                CGRect popRect = CGRectMake(m_tableCell.customView.frame.origin.x,
                                            m_tableCell.customView.frame.origin.y,
                                            m_tableCell.customView.frame.size.width,
                                            m_tableCell.customView.frame.size.height);
                                [popViewController presentPopoverFromRect:popRect
                                                   inView:m_tableCell
                                 permittedArrowDirections:UIPopoverArrowDirectionRight
                                                 animated:YES];

Итак, внутри моего childViewController, т.е. (DateViewController), у меня есть кнопка, которая при переключении вызывает функцию

    - (void)toggleButton
    {
       if(small)
       {
               self.presentingViewController.presentedViewController.preferredContentSize = CGSizeMake(320,485);
       }
       else
       {
             self.presentingViewController.presentedViewController.preferredContentSize = CGSizeMake(320,320);
       }
}

Это работает нормально, но поскольку мы знаем, что в UIPopOverViewController есть стрелка, поэтому, когда я изменяю размер popOverView, стрелка также анимируется вверх и вниз, чего я не хочу. Я не могу показать это на изображении, поэтому извините меня за это.

Нужна помощь

Ранджит.


person Ranjit    schedule 23.01.2015    source источник


Ответы (1)


Прежде всего, код, который вы разместили, не будет работать, потому что в операторе else вы назначаете CGSizeMake, задавая только одно значение при его построении.

Во-вторых, вы можете определить, в каких направлениях вы разрешаете эту стрелку, указав свойство popoverArrowDirection

person Julian    schedule 23.01.2015
comment
Эй, моя опечатка, пожалуйста, проверьте мой вопрос выше сейчас. Эй, я уже внутри VC, который отображается как popOver, отсюда, как я могу получить доступ к свойству popOverArrowDirection. - person Ranjit; 23.01.2015
comment
первое примечание было просто примечанием, главное для вас - это направление стрелки, которое я упомянул :) - person Julian; 23.01.2015
comment
Я указал направление стрелки, когда показываю popOverVC. Теперь я внутри ВК, который отображается как popOver. Теперь, как управлять этим. И есть ли другой способ изменить предпочитаемый размер содержимого? - person Ranjit; 23.01.2015
comment
управлять тем, что настройка направления стрелки? установить свойство, которое я упомянул - person Julian; 23.01.2015
comment
Здравствуйте, я думаю, мой вопрос не ясен, поэтому я сделал правки, надеюсь, вы теперь понимаете, что мне нужно. - person Ranjit; 24.01.2015