2012-06-14 1 views
0

Вкладки могут быть созданы - однако, как вы можете вставлять графику в каждую вкладку и когда вы выбираете вкладки, как вы вызываете ее на новый экран?Как вставить изображение в панель, созданное UIViewController?

# Create a tabbar 
tabbar = UITabBarController.alloc.init 

# Each Tab has a view controller allocated 

tabbar.viewControllers = [ 
    UIViewController.alloc.init, 
    UIViewController.alloc.init, 
    UIViewController.alloc.init, 
    UIViewController.alloc.init 
] 

# Selected index to 0 
tabbar.selectedIndex = 0 

# The root view controller also changed 
@window.rootViewController = UINavigationController.alloc.initWithRootViewController(tabbar) 

# We will force to use a full screen layout. 
@window.rootViewController.wantsFullScreenLayout = true 
+0

u означает, как пользователь может узнать, какая вкладка выбрана? –

ответ

2

Смотрите «Бирс» образец проекта на https://github.com/HipByte/RubyMotionSamples

Вы находитесь на правильном пути, единственное отличие состоит в том, что вы хотите перечислить ваши конкретные классы зрения контроллера вместо родового класса UIViewController , Из образца:

tabbar.viewControllers = [BeerMapController.alloc.init, 
          BeerListController.alloc.init] 

Тогда в каждом из init методов этих контроллеров, вы установите tabBarItem дать ему название и изображение:

class BeerListController < UITableViewController 
    def init 
    if super 
     self.tabBarItem = UITabBarItem.alloc.initWithTitle('List', image:UIImage.imageNamed('list.png'), tag:1) 
    end 
    self 
    end 
end 

В качестве альтернативы, если у вас нет конкретного вида контроллеры еще, я думаю, вы могли бы сделать что-то вроде этого:

tabbar.viewControllers = [ 
    UIViewController.alloc.init, 
    UIViewController.alloc.init 
] 
tabbar.viewControllers[0].tabBarItem = UITabBarItem.alloc.initWithTitle('List', image:UIImage.imageNamed('list.png'), tag:1) 
# etc. 
+0

Спасибо Дилан! Есть ли место, где найдены функции/параметры для UITabBarItem? (То есть в синтаксисе RubyMotion)? Я ищу, чтобы удалить синюю панель сверху или добавить туда текст. – RedNax