2009-10-03 77 views
0

我在一個視圖中使用庫中的UITabBar控件(請注意,我沒有使用UITabBarController而是UITabBar控件)。iPhone的Tabbar +查看問題

現在,我將兩個tabBar項目添加到此TabBar。

我已經爲該視圖(.m和.h)文件創建了控制器類,並在.h文件中使用了委託。

在我已經使用下面的函數.m文件:

  • (無效)的TabBar:(UITabBar *)TabBarControl didSelectItem:(UITabBarItem *)的firstView

我已分配的標記= 0和tag = 1到相應的tabBar項目。

我想要做的是,點擊第一個tabBar項目,我想顯示一個視圖,然後單擊另一個tabBar項目,我想顯示另一個視圖。

因此,在上面的函數中,我檢查如果被點擊的tabBar項的標記是0,那麼我將顯示一個視圖,否則我將顯示另一個視圖。

我顯示如下的觀點:

Team1Scoreboard * tempTeam1Scoreboard = [Team1Scoreboard的alloc]; tempTeam1Scoreboard = [tempTeam1Scoreboard initWithNibName:@「UserTeamScoreboard」bundle:[NSBundle mainBundle]];

self.cntrlTeam1Scoreboard = tempTeam1Scoreboard; 

    [tempTeam1Scoreboard release]; 

    UIView *theWindow = [self.view superview]; 
    [self.view removeFromSuperview]; 
    [theWindow addSubview:self.cntrlTeam1Scoreboard.view]; 

現在的問題是,當我點擊任何的TabBar項目,它會加載正確的觀點,但使用TabBar本身會我加入視圖窗口本身消失。

請幫我,以便我可以加載正確的視圖,而且我的tabBar本身是可見的。

回答

1

TabBar正在消失,因爲它是視圖的子項,然後您將添加一個新子項並且新子項的大小與父項的大小相同。這有道理嗎?好吧,看看這樣:

你有ViewA和ViewA有幾個標籤和一個TabBar。 ViewA由ViewControllerA管理。在ViewControllerA中,您正在創建一個ViewB實例並調用ViewControllerA.view addSubView:instanceOfViewB,對吧?在這之前,您需要調整ViewB的大小。

嘗試是這樣的:

ViewControllerB *viewControllerB = [[ViewControllerB alloc]initWithNibName:@"ViewB" bundle:nil]; 
CGRect frame = CGRectMake(self.view.frame.origin.x, 
          self.view.frame.origin.y, 
          self.view.frame.size.width, 
          self.view.frame.size.height - 40); 
viewControllerB.view.frame = frame; 
[self.view addSubview:viewB.viewControllerB]; 

基本上它應該是接近你在做什麼,但我設置大小爲40像素以下(無論你需要刪除標籤欄)。

+0

嗨Marcc, 謝謝,我能夠正確實現功能。 但現在的問題是,每個tabBar項目的標題都顯示在最底部,並且不可見。 – pratik 2009-10-03 08:18:58

+0

我不知道我明白。有什麼方法可以發佈它現在正在做什麼的截圖? – marcc 2009-10-03 17:09:22