如何将一个工具栏添加到故事板中的UITableViewController的底部?
在我已经使用Storyboards设置的UITableView
中,我需要能够添加一个粘贴到视图底部的工具栏,它不应该滚动。
不像这个问题: LINK我不认为我可以将一个TableView子视图添加到一个普通的视图,然后只是以编程方式添加一个工具栏,因为我使用的dynamic单元格似乎更容易通过故事板集成。
现在,这是我坚持….
如果你想在一个视图控制器放置在一些导航控制器显示工具栏。
- 在故事板中select视图控制器
- 在实用程序中,显示“属性检查器”。 select“底部栏”样式。
- 添加栏button项目
- 在视图控制器中添加代码,以显示和隐藏工具栏:
码:
- (void)viewWillAppear:(BOOL)animated { [self.navigationController setToolbarHidden:NO animated:YES]; } - (void)viewWillDisappear:(BOOL)animated { [self.navigationController setToolbarHidden:YES animated:YES]; }
好简单。 只需点击导航控制器。 然后在显示属性检查器,然后导航控制器,然后点击显示工具栏。 检查屏幕截图。
对于Swift用户,你可以使用下面的代码:
override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated); self.navigationController?.setToolbarHidden(false, animated: animated) } override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated); self.navigationController?.setToolbarHidden(true, animated: animated) }
此补救措施适用于(2016)iOS 9.2。 我们都讨厌苹果如何让我们浪费时间这些应该是直截了当的东西。 我喜欢这种愚蠢的问题一步一步的解决scheme,所以我会与你分享!
- select您的视图控制器>属性检查器>select“不透明工具栏”
- 现在,将一个“Bar Button”项拖放到Storyboard上。
- select您新近删除的栏button项> Atrribute Inspector>系统图标>select您最喜欢的图标。
-
在View控制器的viewDidLoad()方法中,在其他任何地方添加这个代码:
override func viewDidLoad(animated: Bool) { self.navigationController?.setToolbarHidden(false, animated: true)
//代码的其余部分}
-
你不希望那个工具栏挂在其他地方,所以一旦当前窗口被解散,把它添加到你的视图中就可以隐藏它:
–
override func viewWillDisappear(animated: Bool) { super.viewWillDisappear(animated); self.navigationController?.setToolbarHidden(true, animated: animated) }
瞧!
- 将一个UIViewController拖到Storyboard中
- 将一个UIToolbar拖到Storyboard的内容之上。
- 在故事板内容的顶部拖动一个UITableView。
- 将tableview的委托和数据源链接到你的源代码。
虽然你不能使用UITableViewController作为你的链接类,但是步骤4将允许你将它链接到一个普通的UIViewController。
不过在标题中你需要这样的东西
@interface MyViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
它会在你的故事板中看起来像这样:
我用一个容器视图中间视图控制器的表。 将工具栏视图添加到中间,并使其看起来,但是你想(使用UIButtons而不是UIBarButtonItem)。
如果这样做,请将容器视图拉伸到屏幕的顶部,而不是导航栏的底部,否则会拉出头发,试图让滚动插入正确。
在类似的问题一些更多的细节https://stackoverflow.com/a/31878998/1042111
- MonoTouch.Foundation.MonoTouchException已经抛出了Objective-Cexception。 名称:NSInternalInconsistencyException
- 如何用定时器重复调用一个方法(重新加载…)来为一个转换设置animation
- 代表里面的Obj-C代表
- pjsip发送短信如何
- Facebook的iOS SDK和Swift:如何获取用户的个人资料图片
- OpenMP在iOS / Android上
- 在Objective C中检查框架的支持体系结构
- 来自ios Client的NTLM身份validation
- CFBundleDocumentType在myproject-Info.plist文件中不起作用