【问题标题】:How to add an existing tableview controller into a viewcontroller programmatically如何以编程方式将现有的 tableview 控制器添加到 viewcontroller 中
【发布时间】:2016-12-01 20:35:00
【问题描述】:

我正在尝试在我的应用中显示 Twitter 时间线。我使用的是 Fabric,它很容易设置,但它使用的是故事板和 tableview 控制器。我在一个tableview控制器中成功显示了时间线,但是我想在Twitter标签下显示时间线,如图:

这是我的代码

TwitterViewController * twitterVC = [[TwitterViewController alloc] init];
...
[self.view addSubview: twitterVC.view];

它不起作用。我只想在 twitter 选项卡下显示 twitter 时间线。

【问题讨论】:

  • 您可以在 Storyboard 中使用 Embed View Controller 来执行此操作。或者,如果您想以编程方式在另一个视图控制器中添加视图控制器,您可以使用我对这个问题的回答:stackoverflow.com/q/11422845/558933。这个问题是关于使用UISegmentedControl 切换视图控制器,但添加视图控制器的代码是相同。您仍然需要使用 Autolayout 来定位新的视图控制器。
  • 感谢您的快速回复。我会先试试你的答案,看看会发生什么。
  • 感谢@Robotic Cat,您的解决方案有效。

标签: ios objective-c uitableview twitter


【解决方案1】:

这里有几件事可能会出错,但如果没有更多关于您的问题的上下文,就无法判断。

首先,我敦促您阅读this article on View Controller Containment

这里可能存在的另一个问题是视图的布局;你是手动设置 Twitter VC 的框架吗?是否使用 AutoLayout 设置约束?

【讨论】:

  • 感谢您的快速回复,我对ios编程不熟悉。 Twitter VC 只是我拖到情节提要的一个 tableview 控制器,我没有做任何事情。我想将此 tableview 控制器(或视图)添加到我的另一个视图控制器。我通常会这样做 [self.view addSubview: twitterVC.view],但这次是空的。
【解决方案2】:

您可以添加为 childViewController。

    self.TwitterViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"TwitterViewController"];
    [self addChildViewController:self.TwitterViewController];
    [self.TwitterViewController.view setFrame:CGRectMake(0.0f, 0.0f, self.contentView.frame.size.width, self.contentView.frame.size.height)];
    [self.contentView addSubview:self.TwitterViewController.view];
    [self.TwitterViewController didMoveToParentViewController:self];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-03
    相关资源
    最近更新 更多