2014-07-22 20 views
3

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

任何帮助将不胜感激。

我的故事板

Storyboard Screenshot

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 
+0

我已经起来票选你的问题,因为您的代码段已经很对我帮助很大。非常感谢您在代码中包含您的代码。但我无法分辨代码所指的字幕“视图控制器”中的哪一个场景。起初,我将属于第二个“视图控制器”的代码成像,但是我在'.h'文件中看到了'(UISegmentedControl *)sender'。我指的是子标签:“View Controller” - >“View Controller” - > [“First Controller”,“Second Controller”]。 –

+0

我正在尝试实现UISegmentedControl部分。 –

+0

ViewController引用故事板中显示的第一个。你不需要另一个,你可以删除它。 – ritch

回答

3

如果FirstController是故事板的一部分,那么您必须从故事板加载它。

尝试做

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

+0

谢谢,这工作。如果你不介意的话,最后一件事情 - 从设计实践的角度来看,视控制器与第一和第二控制器之间是否会出现中继? – ritch

+0

我不会打扰。你不会使用这些赛车 - 这会让你更加困惑。 –

+0

'yourIdentifier'是故事板ID还是Restoration ID? –

相关问题