2

на основе Apple, sample code, мое приложение представляет собой контроллер представления в пироге, который стал началом с помощью кнопки бара:Где установить размер контроллера представления, представленного в popover?

- (IBAction)configChartTapped:(id)sender { 

GrowthChartConfigOneViewController *panelViewController = [[GrowthChartConfigOneViewController alloc]init]; 

UIPopoverController *popover = [[UIPopoverController alloc]initWithContentViewController:panelViewController]; 
popover.delegate = self; 

// Store the popover in a custom property for later use. 
self.popover = popover; 

[self.popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
} 

Однако я не нашел способ, чтобы установить размер пирога.

Вопрос: Где и как установить размер popover и его контроллера вида? Могу ли я установить размер непосредственно в XCode, чтобы иметь правильный размер изображения в раскадровке?

ответ

3

Просто дайте popovercontentsize и убедитесь, что вид должен соответствовать по размеру поповер, как определено ниже:

popover = [[UIPopoverController alloc] initWithContentViewController: panelViewController]; 
    popover.popoverContentSize = CGSizeMake(550, 700); 
+0

Могу ли я установить размер поповер непосредственно в Xcode? Когда я устанавливаю размер в коде, представление popover имеет стандартный размер представления и не имеет правильного размера в раскадровке. – AlexR

5

Вы также можете установить его внутри самого поповер класса. Таким образом, если вы разрешите вызывать popover из нескольких мест, вы можете просто установить размер один раз.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
     self.view.backgroundColor = [UIColor redColor]; 
     self.contentSizeForViewInPopover = CGSizeMake(320.0, 216.0); 
    } 
    return self; 
} 
+0

Будет ли это работать в сочетании с раскадровки? – AlexR

+0

Alex, вам, вероятно, придется переместить это в viewDidLoad. –

+1

В iOS7 Xcode говорится, что contentSizeForViewInPopover устарел и вместо этого используется «preferredContentSize», например: self.preferredContentSize = CGSizeMake (630, 340); –

2

Хороший ответ выше, но я просто хотел его обновить для раскадровки из-за моих немного разных потребностей. Если вы инстанцировании с помощью раскадровки идентификатор так:

CBItemViewController *addNewPayee = [self.storyboard instantiateViewControllerWithIdentifier:@"cbItemPopover"]; 

, то вы можете установить пользовательский размер внутри кода поповер как это:

- (id)initWithCoder:(NSCoder *)decoder { 
    if(self = [super initWithCoder:decoder]) { 
     self.preferredContentSize = CGSizeMake(630, 340); 
    } 
    return self; 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^