无法在第一个视图控制器顶部嵌入第二个视图控制器
使用下面的代码在第二个视图控制器顶部显示第一个视图控制器就像对话框一样。无法在第一个视图控制器顶部嵌入第二个视图控制器
[self addChildViewController:viewController];
viewController.view.frame = self.view.frame;
[self.view addSubview:viewController.view];
viewController.view.alpha = 0;
[viewController didMoveToParentViewController:self];
[UIView animateWithDuration:0.25 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^
{
viewController.view.alpha = 1;
}
completion:nil];
但第二个视图控制器是不可见的...我如何能排序了这一点?
必须有,你犯的错误代码,我写了一个演示: 我写两个控制器这样的:
在vc1
:
#import "ViewController.h"
#import "ViewController2.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self initUI];
}
#pragma mark - init
- (void)initUI {
self.view.backgroundColor = [UIColor whiteColor];
A) If use storyboard, init vc2 like this :
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ViewController2 *vc2 = [sb instantiateViewControllerWithIdentifier:@"ViewController2"];
B)If use code ,init vc2 like this:
ViewController2 *vc2 = [[ViewController2 alloc] init];
[self addChildViewController:vc2];
vc2.view.frame = self.view.bounds
[self.view addSubview:vc2.view];
vc2.view.alpha = 0;
[vc2 didMoveToParentViewController:self];
[UIView animateWithDuration:0.25 delay:0.0 options:UIViewAnimationOptionCurveLinear animations:^
{
vc2.view.alpha = 1;
}
completion:nil];
}
@end
在vc2
:
#import "ViewController2.h"
@interface ViewController2()
@end
@implementation ViewController2
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor = [UIColor brownColor];
}
第二视图控制器的观点是不可见的兄弟.... –
@ user32231234124我在什么地方说必须写错误。请按照我的代码,你需要一个新的项目,有2'vc',我的代码复制到'vc1'和'vc2',测试这个然后答复。 – aircraft
我尝试了...由于具有在同一个故事板视图控制器IM,我需要在那里进行实例化的所有意见,在别的可见子视图不会可见 –
尝试
[parentView bringSubviewToFront:childView];
尝试
viewController.view.frame = self.view.bounds;
做检查,如果你有实例
viewController
正常。
我已经尝试过了,但仍然无法正常工作 –
我编辑了我的答案,请检查它。 –
这是行不通的兄弟... :( –
为'viewController.view'尝试'bringSubviewToFront' –
它不工作bro –
请确保childViewController(即。 viewController)与当前的视图控制器不一样,你不是将它添加到viewDidLoad或viewWillAppear等。 –