2014-07-12 99 views
1

我目前正在開發我的第一個iOS應用程序,到目前爲止它很棒。但是現在我想開發一個功能,這有點更先進,我不知道如何繼續。UITabBarController之間的共享控件查看

我的應用使用Core DataTabBarController在不同的NavigationControllers之間切換。

現在我想在每個顯示一個標籤和兩個按鈕的導航控制器上實現一個子視圖。標籤是計時器的指示器,如果定時器停止,兩個按鈕應該啓動和停止定時器並保存一點數據。這個子視圖應該在選項卡之間連續,所以我想保留定時器和按鈕的狀態。

我的想法是創建一個xib並在TabBarController本身上加載此xib,但是我不知道如何完成此操作。

+0

爲什麼所有導航控制器上的視圖相同?任何具體原因?對於解決方案,您可以創建一個單例實例視圖控制器並將其與所有導航控制器鏈接,但這實際上違反了標籤欄控制器的目的。 – rishi

+0

如果我啓動計時器,標籤應該開始顯示計時器,如果我想切換導航控制器,我希望仍然能夠看到計時器的這種顯示,並且能夠啓動和停止它。 –

+0

你創建了你的標籤欄控制器類嗎?或全部從故事板鏈接。 – rishi

回答

0

我會在標籤欄控制器的子類中創建計時器;無論如何它都是一個單身人士,並且應該在整個生命週期中都存在。如果創建一個屬性在那裏,我把它叫做「計數器」,你可以在你的內容控制器的觀察,以更新您的標籤,

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self addObserver:self forKeyPath:@"self.tabBarController.counter" options:NSKeyValueObservingOptionNew context:nil]; 
} 

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { 
    NSString *s = [NSString stringWithFormat:@"%@",(NSNumber *)[change valueForKey:@"new"]]; 
    self.label.text = s; 
} 

你需要在你的標籤欄控制器的方法來啓動和停止可以從內容控制器中的按鈕調用的定時器。至於帶有標籤和按鈕的視圖,我不會嘗試將其添加到標籤欄控制器,我會將其添加到每個內容控制器。如果您正在設計故事板中的視圖,則可以將它放在一個控制器中,然後複製並粘貼到任何需要它的其他人。

+0

與定時器的想法似乎很聰明,我明天會嘗試這個。謝謝。 –