【问题标题】:Altering Content in Multiple Views based on User Input [xCode/iOS]根据用户输入更改多个视图中的内容 [xCode/iOS]
【发布时间】:2012-06-29 01:07:37
【问题描述】:

这可能相当简单,但我很难理解它。我正在创建的应用程序的基本前提是拥有一个列出一堆主题的 TableView。用户选择其中之一,一个 TabBarController 被推送,我打算让这些子视图中的内容根据原始选择进行更改。

我四处寻找一种正确执行此操作的方法,但似乎找不到任何可以解决我如何将内容推送到这些视图的方法。最初,我使用的是带有 SegmentedSelection 元素的 ViewController。基本上,我会使用控制器的标题,它会自动从 TableView 选择继承,格式化它,并使这个表单成为相关内容链接的基础,即我会有一个加载文件 .png 的图像视图.显然,这远没有使用原生 UITabBarController 那样用户友好。

非常感谢任何帮助。

PS:我正在使用 StoryBoards 和 ARC。

【问题讨论】:

  • 如何存储填充表的所有数据?您是从数据库还是数组中提取数据,还是什么?如果您使用自定义数据类,则可以添加一个 id 属性,用于匹配所有数据。
  • 我使用数组作为表的数据源,所以您是否建议有一种方法可以将关联的 ID 传递给作为标签栏控制器的“子”的所有视图控制器?
  • 是的。您是否已经知道数组中所有对象的顺序?
  • 是的,它是一个基于文本的数组,内嵌编写。顺便说一句,我非常感谢您的帮助,事实证明 iOS 很难让我理解。
  • 我发布了代码作为答案,因为我无法在评论中格式化代码。

标签: iphone ios xcode storyboard automatic-ref-counting


【解决方案1】:

好的,所以当你调用pushViewController 时,你需要在视图控制器中创建一个自定义的init 方法。像initWithId:(NSUInteger *)rowID 这样的东西。确保在头文件中声明它。然后在您的第一个带有表格的视图控制器中,当您初始化您将要使用的 viewController(并设置委托)时,您将调用您的自定义 init 方法,而不仅仅是 init 并传递 [myArray objectAtIndex:selectedRowThatsAnNSUinteger]。如果需要,您也可以只传递整个数组,而不是传递行 #。如果您这样做,请确保更改自定义 init 方法以匹配更改。现在,在您的视图控制器的新init 方法中,您可以获取方法中提供给它的内容并对传递的数字进行某种检查(因为您知道行#)。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-06-22
    • 2014-05-27
    • 1970-01-01
    • 2020-02-10
    • 2017-03-27
    • 2020-06-13
    • 2022-10-16
    • 2021-06-27
    • 1970-01-01
    相关资源
    最近更新 更多