【问题标题】:Resizing viewControllers view that are part of a UINavigationController on IPhone调整作为 iPhone 上 UINavigationController 一部分的 viewControllers 视图的大小
【发布时间】:2010-11-21 01:32:55
【问题描述】:

我正在使用 UINavigationController 来处理我的应用程序中 viewControllers 的推送和弹出。有一个部分,我有一个标签栏(不使用 UITabbarController),它由同一个 UINavigationController 管理,我只需将 UITabBar 添加到导航控制器视图(通过使用 addSubview)。

问题: 我有一些带有表视图的 UIViewControllers 被推入导航堆栈,因为我的标签栏是视图的一部分而不是导航堆栈,所以 TableViews 在底部被切断,因为导航控制器不知道标签栏,因为它在它的视图而不是导航堆栈。如果没有导航控制器,我只会调整 ViewControllers 视图的大小,它会正常工作,但是当我尝试这样做时,NavigationCOntroller 似乎只是忽略了我的框架并设置了自己的框架,因此表格视图被切断了。我找到了一种解决方案,它是添加一些额外的单元格并将它们隐藏起来,这有点好,但它有点像黑客,有人对如何以不同的非黑客方式解决这个问题有任何建议吗?

谢谢

【问题讨论】:

  • 我知道,我有点恼火导航控制器不会让我调整其 viewControllers 视图的大小......
  • 你能展示一些你的问题的截图吗?
  • 我找到了答案,谢谢 Jonah...屏幕看起来像一个表格视图和一个标签栏,而标签栏覆盖了表格视图的最后几个单元格(它不会滚动通过)跨度>

标签: iphone uinavigationcontroller uitabbar


【解决方案1】:

好的,所以我解决了这个问题。我之前尝试过调整 UITableView 而不是 viewController 的大小,但这不起作用。不过,我刚刚意识到,这不起作用,因为我使用的是 UITableViewController,它管理自己的 tableView 并且不让我更改它的框架(也许我在错误的地方更改它,在 viewDidLoad 中尝试过,我敢打赌,如果我在调用 [super viewDidload] 之后就这样做了,它本来可以工作的..o 好)。因此,我将类更改为 UIViewController 并在其中管理表格视图,现在效果很好,感谢您的回复。

【讨论】:

  • 底部工具栏怎么样?可以搬吗?
【解决方案2】:

尝试将根视图设置为 UIView,并使用 UITableView 作为子视图。然后将 UITabBar 添加到 UIView 实例。现在 UITableView 不会知道 UINavigationController。

【讨论】:

  • 这不是很漂亮,我希望我的视图控制器来管理我的表格视图...虽然我刚刚找到了答案,我之前尝试过但没有用,但现在可以了,检查一下
  • 我可能没有解释得那么好。事实上,您现在有一个用于主视图的 UIViewController 实例和一个用于表视图的 UITableViewController 实例。 UItableViewController 实例是 UIViewController 实例的 ivar。这也可以很好地划分管理表格和管理 UINavigationBar、加载子视图等的职责......
  • 巧合的是,这与您当前的解决方案相似,但仍然使用 UITableViewController 来管理您的表格。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
相关资源
最近更新 更多