【问题标题】:Pushing a UIViewController from inside a UITableView从 UITableView 中推送 UIViewController
【发布时间】:2010-11-07 16:59:07
【问题描述】:

大家好, 我有一个分段控制器,它显示一个包含 UITableView 的框架(cgrectmake)UIview。

我 addSubView 来显示 tableview,这很好。但是在 didselect 方法的 tableview 中,我想推送一个不同的视图控制器。

但是当我这样做时它没有出现,它确实注册了触摸等。如果我添加子视图,它会显示,但我需要真正推动这个视图。所以要填满屏幕,而不是新视图只显示在包含 tableview 的 UIView 内。

我通过推送 tableview 然后推送后续视图进行了实验,最终视图显示完美,但我需要将 tableview 包含在屏幕上的框架中。

有什么建议可以试试?

迈克尔。

【问题讨论】:

  • 显然问题源于我没有调用应用程序代表导航控制器这一事实,必须是其他一些更本地的。

标签: iphone uitableview uiview pushviewcontroller addsubview


【解决方案1】:

您能否用一些代码说明您尝试过的内容?您提到了有关推送 tableview 和后续视图的实验,但不推送视图,仅推送视图控制器。只是想确保这不是你想要做的。

你还提到它注册触摸...

如果设置正确,您的 tableview 就在它自己的 viewController 的视图中。确保 viewController 类符合 UITableViewDelegate。 (或者您决定为 UITableView 设置委托属性的任何类)

即在 myViewControllerClass.h 中:

@interface myViewControllerClass <UITableViewDelegate>

作为 UITableView 委托的类还必须实现以下委托方法:

- (void)tableView:(UITableView *)inTableView didSelectRowAtIndexPath:(NSIndexPath *)inIndexPath

该方法将在表格视图中选择一行时调用。这是您决定将另一个 viewController 推送到您的第一个 viewController 上的地方。

【讨论】:

  • 在包含 UIView tableView 的 viewController 中,一旦注册了分段控制器值更改,我就会初始化目标 @interface FavouriteNewsView : UITableViewController,它可以正确显示。在 didSelectRow 等之后。我调用包含我想要显示的新闻文章的新视图。这就是我想要的 PushViewController,它只显示下面的视图。但是,如果我 addSub 视图,它会显示在其包含的 UIView 中。
  • 会做一些适当的回应,但从来没有在这里问过问题,只阅读..几个小时:P 代表可能是值得一试的,遗憾的是我对它不太熟悉,只为 4 开发 iphone /5 个月。
  • 尝试重新阅读 Table View Programming Guide 并查看示例代码:developer.apple.com/library/ios/#documentation/UserExperience/…
【解决方案2】:

如果您将 tableView 添加为子视图,您是否记得将委托设置为与您调用 didSelectRowAtIndexPath 相同的对象?

您还需要确保此对象是UITableViewDelegate

【讨论】:

  • 这是我之前的例子,- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:indexPath animated:YES]; newsPageViewController = [[NewsPageViewController alloc] init:indexPath.row:articles]; newsPageViewController.hidesBottomBarWhenPushed = YES; [[self navigationController] pushViewController:newsPageViewController Animation:YES];
  • 这个例子有效,从 tableview 推送视图等,我的例子很棘手,因为所有这些都存在于一个受限的 UIView initwithframe 中。但是 newPageViewController 想要被推送,在我当前的上下文中它不会让我,只能是 addSubview,不知道为什么。不确定代表的事情,我在下面写的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
相关资源
最近更新 更多