【问题标题】:Present Navigation Table View modally, who is the delegate?以模态方式呈现导航表视图,谁是委托人?
【发布时间】:2009-11-03 14:53:56
【问题描述】:

基本上我有一个位置层次结构:国家、州/省、城市。

我想使用委托呈现“添加位置”模式表。

我意识到最好的方法是在 TableView 中显示我的顶级元素,如果它们被选中,我想进入“下一个”级别。但是,任何级别的任何位置都应该能够被“添加”,所以我要么有一个附件按钮,要么只是一个在单元格上显示添加的自定义按钮。

我想使用委托来执行此操作,但我不太确定委托应该在哪里。我可以想到 2 个选项:
1. 使用LocationNavigationControllerDelegateUINavigationController 子类化为LocationNavigationController,但随后我需要找到某种方式用我的LocationListTableView 回复消息
2. 制作一个持有代表的LocationListTableView,每次我进入“下一个”级别时,只需继续传递代表即可。因此,当他们最终点击单元格的“添加”按钮时,我原来的 ViewController 可以获取位置并将其关闭。尽管将 Delegate 一直沿 TableViews 链向上传递,但这似乎确实是错误的。在这种方法中,我会先创建一个新的 NavController,然后弹出 LocationListTableView 的根树

【问题讨论】:

  • NSNavigationController?你是说 UINavigationController 吗?

标签: iphone objective-c delegates uinavigationcontroller uitableview


【解决方案1】:

查看View Controller Programing Guide,特别是dismissing a modal controller 部分。

他们的代码示例是使用模态屏幕将配方添加到呈现它的表格视图控制器。

【讨论】:

  • 所以你是说我应该不断地把代理推到每个 TableView 上,如果一个人决定采取行动,它就会去?
  • UITableViewControllers 的委托。模态视图让 UITableViewControllers 知道他们何时使用您的协议完成传递信息,然后谁会关闭它们并使用传递的信息添加新行。
  • 好吧,我明白你在说什么,但我并不完全同意。 UITableViewController 应该有对委托的引用,它们本身不是委托。我调用 presentModalView 的原始 ViewController 是委托。当我的 UITableView 做某事时,它会调用委托并说“嘿,我完成了”。所以这就是为什么我问我是否通过 TableView 传递委托引用,然后当一个人决定采取行动时,它会调用委托,或者是否有其他方式我应该处理它。
猜你喜欢
  • 2012-05-22
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 2014-04-11
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多