我试图将UIToolbar放在UIPopoverController的顶部,就像Apple在页面和主题演讲中使用“media”,“tables”,“charts”“shapes”工具栏一样。
我设法使用this post中描述的相同方法在底部放置一个,但我无法将其移到顶部。
我可以通过在其中一个子视图控制器中放置一个普通的UIToolbar来实现,但是工具栏似乎与边框不在同一条线上,并且看起来不像苹果应用程序那样漂亮。 / p>
有没有人对如何做到这一点有任何建议,或者甚至可能?任何帮助将不胜感激。
谢谢!
答案 0 :(得分:10)
使用UINavigationController只保存一个ViewController作为popoverController的内容,如下所示:
MyViewController *myVC = [[myViewController alloc] init];
UINavigationController *navCon = [[UINavigationController alloc] initWithRootViewController:myVC];
myPopoverController = [[UIPopoverController alloc] initWithContentViewController:navCon];
[myVC release];
[navCon release];
[myPopoverController presentPopoverFromRect:rect
inView:view
permittedArrowDirections:UIPopoverArrowDirectionRight
animated:YES];
然后,在viewController的init中,设置navigationController的项目:
self.navigationItem.title = @"myTitle";
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonTapped:)] autorelease];
你可以疯狂地把你想要的东西放在那里:
self.navigationItem.titleView = [[MySpecialTitleView alloc] initWithFrame...];
如果其堆栈中只有一个ViewController,导航控制器将无法导航。
iOS 7警告:弹出窗口中的NavigationBars似乎忽略了iOS 7中的色调。我认为这是一个错误并鼓励您在遇到此问题时向Apple提交错误报告。
答案 1 :(得分:1)
您可以将工具栏放在UIPopoverController的顶部。
更确切地说,你必须把它放在UIViewController的顶部,当调用initWithContentViewController时,它将被设置为你的UIPopoverController的内容。
如果您正在使用IB:
1)将UI工具栏拖到UIViewController的顶部
2)选择UIToolbar,转到尺寸检查器和自动调整部分:
- 单击顶部指示器以固定上边距
- 单击底部指示器以使底部边距灵活
在小预览窗口中,红色条应保持在顶部