2015-01-23 4 views
0

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

Во-первых, я представляю 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, стрелка также анимируется вверх и вниз, чего я не хочу. Я не могу показать это в образе, поэтому, пожалуйста, извините меня за это.

Нужна помощь

Ранджит.

ответ

0

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

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

+0

Эй моя опечатка, пожалуйста, проверьте мой выше вопрос сейчас. Эй, я уже в VC, который показан как popOver, откуда я могу получить доступ к свойству popOverArrowDirection. – Ranjit

+0

первая заметка была только примечанием стороны, для вас важна стрелка, о которой я говорил :) –

+0

Я указал направление стрелки, когда показываю popOverVC. Теперь я внутри VC, который отображается как popOver. Теперь как это сделать. И является ли их другим способом изменить preferredContentSize? – Ranjit