我在父視圖控制器A中有一個視圖控制器B.兩個視圖都顯示相同的時間。presentViewController和viewDidAppear沒有在iOS5.1/6中調用
鑑於控制器B,我試圖通過以下的方法以呈現新視圖控制器:
- (void) buttonClicked:(id)sender
{
MyViewcontroller *vc = [[MyViewcontroller alloc] init];
[self presentViewController:vc animated:YES completion:nil];
}
視圖控制器在iOS6的正確顯示和我通過使用以下方法解僱MyViewController
:
- (IBAction)backButtonPressed:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
但有
QN1的iOS 5.1和iOS 6之間的差:在解僱視圖控制器,A & B viewDidAppear
未被調用。它應該被觸發嗎?我不能讓MyViewController
在iOS 5.1.1中顯示。除非我作爲一個孩子容器中添加視圖控制器B到A:
[self addChildViewController:vcB];
[self.view addSubview:vcB.view];
通過增加孩子的控制器,我可以得到MyViewController
顯示和視圖控制器,當它被駁回了&乙viewDidAppear將被調用。使用iOS6時也會調用viewDidAppear
。
我不確定這裏發生了什麼。
對於#2,我做了一個'po [[UIWindow keyWindow] recursiveDescription]',並且視圖層次結構對我來說看起來很理智。 UIWindow - > UIView(視圖控制器A) - > UIView(視圖控制器B) - > UIButton。我不確定在哪裏看? –
我還應該提到這是沒有'[self addChildViewController:vcB];',其中self =視圖控制器A. –