我正在尝试从childViewController内部更改UIPopOverController的首选内容大小。
首先,我以这种方式呈现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 :(得分:0)
首先,您发布的代码不起作用,因为在else语句中,您指定CGSizeMake在构造时只给出一个值。
其次,您可以通过指定popoverArrowDirection property
来定义允许该箭头指向的方向