2016-11-25 78 views
0

使用下面的代碼在第二個視圖控制器頂部顯示第一個視圖控制器就像對話框一樣。無法在第一個視圖控制器頂部嵌入第二個視圖控制器

[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]; 

但第二個視圖控制器是不可見的...我如何能排序了這一點?

+0

爲'viewController.view'嘗試'bringSubviewToFront' –

+0

它不工作bro –

+0

請確保childViewController(即。 viewController)與當前的視圖控制器不一樣,你不是將它添加到viewDidLoad或viewWillAppear等。 –

回答

1

必須有,你犯的錯誤代碼,我寫了一個演示: 我寫兩個控制器這樣的:

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]; 

} 
+0

第二視圖控制器的觀點是不可見的兄弟.... –

+0

@ user32231234124我在什麼地方說必須寫錯誤。請按照我的代碼,你需要一個新的項目,有2'vc',我的代碼複製到'vc1'和'vc2',測試這個然後答覆。 – aircraft

+0

我嘗試了...由於具有在同一個故事板視圖控制器IM,我需要在那裏進行實例化的所有意見,在別的可見子視圖不會可見 –

1
  1. 嘗試[parentView bringSubviewToFront:childView];

  2. 嘗試viewController.view.frame = self.view.bounds;

  3. 做檢查,如果你有實例viewController正常。

+0

我已經嘗試過了,但仍然無法正常工作 –

+0

我編輯了我的答案,請檢查它。 –

+0

這是行不通的兄弟... :( –

相關問題