我相信這種情況將是非常典型的情況,但我無法得到它的工作。這裏是我的視圖關係:擴展UITabBarController(A) - > UINavigationController(B) - >擴展UIViewController作爲根視圖控制器(C) - >目標視圖控制器(D)與UIButton(E)。iOS的目標c用按鈕替換uitabbar,但按鈕沒有交互?
最初,作爲集合視圖的根視圖控制器正在顯示,然後在D的初始化期間推送到D,在viewWillAppear和viewWillLayoutSubviews中,我將代碼隱藏在Tabbar A中並保持B的導航欄顯示,並將D的視圖設置爲新的框架高度以確保它可以覆蓋整個屏幕,然後將UIButton E框架佈置到Tabbar A的框架。
的結果是按鈕E能否正常顯示,在先前的TabBar的位置,但它不會響應任何的手勢或touchupinside事件。
下面是d的代碼:
- (void)viewWillLayoutSubviews{
[self.navigationController.tabBarController.tabBar setHidden:YES];
[self.view setFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height + self.navigationController.tabBarController.tabBar.frame.size.height)];
[_button setFrame:CGRectMake(0.0f, screenRect.size.height - buttonHeight - self.navigationController.navigationBar.frame.size.height - [UIApplication sharedApplication].statusBarFrame.size.height, screenRect.size.width, buttonHeight)];
[self.view addSubview:_button];
[self.view bringSubviewToFront:_button];
}
我嘗試使用
[self.view insertSubview:_button atIndex:0]
過,並在調試器檢查視圖層次,所有LOOKS好,除了解僱沒有互動活動。
感謝您的幫助!
我覺得你的層次結構看起來像一個消息傳遞應用程序(的TabBar控制器 - >歷史 - >您的收藏視圖(視圖控制器)要隱藏的TabBar當你推 – Mohamad
是的,我想的TabBar隱藏什麼時候?我正在嚮導航控制器推送一個特定的視圖,這是行得通的,但視圖上的按鈕不能在tabor的位置點擊,如果我沒有隱藏tabbar,也不要將按鈕設置到該位置,嗯,但這不是我想要的 – jeffrey