2016-12-10 71 views
2

我对Swift/iOS编程非常新颖,但是随着我的进行,我正在采摘很多东西。在Swift中使用导航栏标题作为下拉菜单

具体来说,我在我的一个应用程序页面上有一个导航栏,它有一个编辑按钮来编辑占用大部分页面的表格视图,以及一个添加按钮以将新项目添加到表格视图。目前标题只是说“玩家”,因为该表格是用户可以输入以保存在列表中的玩家列表。

我想标题更下拉菜单,可以让用户查看多组数据被存储(如不同玩家多个列表。)

我真的不能提供太多的代码,因为没有什么可以提供,因为我不知道从哪里开始执行此特定任务。我当前的所有代码主要只是Outlets,Actions和用于我页面上与此功能无关的其他UI元素的自定义函数。

回答

1

由于您的问题本质上是“一般”,但缺乏具体的代码,因此我会给您一些通用答案,让您指出正确的方向。

一种方法是创建显示UITableViewController的弹出窗口。这里有一个tutorial from VEA Software解释如何创建一个popover。

另一件你需要知道如何做,以便从你的popover UITableViewControlleryourViewController转播东西是delegate methods。这是一个不错的"quick and dirty" explanation of delegates

所以基本上,你要做的就是在yourViewController上为你的下拉菜单创建一个IBAction。里面那个方法,你会告诉yourViewController你想用下面的命令来Segue公司:

self.performSegue(withIdentifier: "popoverSegue", sender: sender) 

在上yourViewControllerprepareForSegue方法,你会做你需要做的,并通过你需要的任何变量的配置传递给你的popover。您还需要将yourViewController设置为您显示的弹出窗口的代表。

在您的PopoverTableViewController上,您需要填写tableView的数据。在您的didSelectRowAtIndexPath中,您需要使用委托方法在yourViewController上执行操作。

没有特定的代码,我只能告诉你一般要做什么,并指出你需要的资源来完成它。我希望这是有帮助的。

+1

想象一个全新的单视图应用程序,只有一个视图控制器脚本,其中导航栏和表视图都是故事板中的所有内容。假设表格和导航栏正确插入并委托在视图控制器内使用。这就是全部。我只是用一个字典来存储一个包含玩家数组的密钥(组名),而表视图只是显示基于所选密钥的数组集合。感谢您的链接,我会进一步调查。我很欣赏这种努力!我打了upvote,但说它很重要,但不会显示。希望有所帮助! – kingfoot