Re: [問題] tabBarController 沒反應

看板MacDev作者 (←這人是超級笨蛋)時間12年前 (2013/02/06 22:39), 編輯推噓1(104)
留言5則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《kiii210 (Johnny.T)》之銘言: : 有點不知道怎麼下標題...這次真的遇到困難了... : 簡單敘述一下問題 : 現有一個UITabBarController,是Initial View Controller, : 跟它有Relationship的都會有tabBar. : 原本的tabBar已經被我hidden,改用我自己的UIView來做. : 假設我現在在FirstViewController, : 我需要一個功能, 在原本的tabBar(自己的UIView)上面再蓋一層UIView過去. : (沒辦法在FirstViewController當中addSubView, 因為不管怎樣都會被tabBar蓋掉) : 但是問題來了, 在FirstViewController不管怎麼呼叫TabBarController中的method, : method會有反應(NSLog), 但是執行的動作卻都沒反應 : ex: : - (void) hideTabBar : { : NSLog(@"YES"); : self.bar.hidden = NO; : } : NSLog會有值出來, 代表method有執行到, : 但是我的bar(UIView)卻無法hidden.... : 這是什麼問題勒...~"~ 其實你可以把 subview 加到 UITabBar 裡, 就不會被蓋掉了 回到你的問題 你給的東西實在太少了根本有給等於沒給 不過發生這種事情的時候第一個就是要懷疑你的 self.bar 是不是 nil : 另請問 : MyTabBarController *tab = [self.storyboard instantiateViewControllerWith : Identifier:@"Bar"]; : [tab showsStatusBar]; : 跟 : MyTabBarController *tab = [[MyTabBarController alloc] init]; : [tab showsStatusBar]; : 這兩者都能執行該method, 但有何差異?建議用哪一種呢? Storyboard 中的 objects 是處於被 archived 的狀態 當你呼叫 -instantiateViewControllerWithIdentifier: 時 Storyboard 會呼叫對應的 view controller 的 -initWithCoder: 初始子 這個初始子會連帶使得你在 Storyboard 為這個 controller 做的設計被重建 接著呼叫一連串的 callbacks, 包括 -awakeFromNib: 和 -viewDidLoad 等等 另一方面如果你用 alloc init 的話, 被呼叫的當然就是 -init 而且(重點)你「不會」得到這些 callbacks, 也不會得到 Storyboard 中的重建 建議用哪種?那就看你的需求啊 如果你的 view controller 是 self-contained 或是使用獨立的 NIB 那當然就是用 alloc init 比較好 而如果你需要(或希望)在 Storyboard 為這個 controller 進行設計 那就是 -instantiateViewControllerWithIdentifier: 比較好 甚至如果你設計的好, 還可以讓一個 view controller 同時適用這兩種策略 就可以更方便地重用這個 class -- "問おう、貴方が私のマスターか?" -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146

02/14 01:04, , 1F
感謝大大回復,不好意思這麼晚才回,最近幾天都在趕案子
02/14 01:04, 1F

02/14 01:04, , 2F
我知道問題敘述得不夠清楚, 不過問題已經解決了,m/4
02/14 01:04, 2F

02/14 01:04, , 3F
用UIApplication sharedDelegate跟tabController搭配用
02/14 01:04, 3F

02/14 01:05, , 4F
storyboard問題也感謝, 沒想到這中間還牽扯這麼深..
02/14 01:05, 4F

02/14 01:05, , 5F
我還有得學...
02/14 01:05, 5F
文章代碼(AID): #1H4ciBB_ (MacDev)
文章代碼(AID): #1H4ciBB_ (MacDev)