【问题标题】:Problems implementing a container view实现容器视图的问题
【发布时间】:2014-09-13 05:42:15
【问题描述】:

我正在尝试按照View Controller Programming Guide for iOS 在我的应用程序中实现容器视图。目前我只是想加载一个初始的第一个视图,但是第一个控制器中包含的标签没有显示出来。最后希望能够通过分段控件来控制容器中显示哪个视图。

任何帮助将不胜感激。

我的故事板

ViewController.h

@interface ViewController : UIViewController

@property (weak, nonatomic) IBOutlet UIView *contentController;

- (IBAction)SegmentedControlValueChange:(UISegmentedControl *)sender;

@end

ViewController.m

#import "ViewController.h"

#import "FirstController.h"
#import "SecondController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    FirstController *firstController = [[FirstController alloc] init];
    [self displayContentController:firstController];
}

- (IBAction)SegmentedControlValueChange:(UISegmentedControl *)sender
{
}

- (void)displayContentController: (UIViewController *)content
{
    [self addChildViewController:content];

    content.view.frame = [self frameForContentController];

    [self.view addSubview:content.view];

    [content didMoveToParentViewController:self];
}

- (CGRect)frameForContentController
{
    return self.contentController.bounds;
}

@end

【问题讨论】:

  • 我对你的问题投了赞成票,因为你的代码 sn-p 对我有很大的帮助。非常感谢您在问题中包含您的代码。但我不知道代码所指的是哪一个带有副标题“视图控制器”的场景。起初我认为代码属于第二个“视图控制器”,但后来我在.h 文件中看到了(UISegmentedControl *)sender。我指的是子标签:“视图控制器”->“视图控制器”->[“第一个控制器”,“第二个控制器”]。
  • 我正在尝试实现 UISegmentedControl 部分。
  • ViewController 指的是情节提要中显示的第一个。另一个你不需要,你可以删除它。
  • @KatedralPillon 我已经回答了你的问题 - stackoverflow.com/a/24929501/273173

标签: ios objective-c xcode uiviewcontroller uicontainerview


【解决方案1】:

如果FirstController 是情节提要的一部分,那么您必须从情节提要中加载它。

尝试做

FirstController *firstController = [self.storyboard instantiateViewControllerWithIdentifier:@"yourIdentifier"];

【讨论】:

  • 谢谢,这行得通。如果您不介意最后一件事 - 从设计实践的角度来看,视图控制器与第一个和第二个控制器之间是否应该存在 segues?
  • 我不会打扰。你不会使用那些 segues - imo 只会让这更加混乱。
  • yourIdentifier 是 Storyboard ID 还是 Restoration ID?
  • 应该是storyboardId
  • @JohnGrant 请你帮我解决这个问题:stackoverflow.com/questions/24914901/…
猜你喜欢
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 2019-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多