Как отображать разные представления каждый раз, когда щелкают элемент панели вкладок в приложении UITabBarBased?

Я хочу, чтобы экран 1 отображался при нажатии элемента панели вкладок 1, и если я изменю некоторые настройки, я перейду в другое представление, когда я снова щелкну элемент панели вкладок 1, я хочу показать экран 2.

У меня есть приложение на основе UITabbar, а в MainWindow.xib есть разные вкладки, загруженные ранее с представлениями.

Как мне изменить это программно?

Пожалуйста помоги


person iOSDev    schedule 19.09.2011    source источник


Ответы (3)


просто поместите код для создаваемых представлений в метод viewWillAppear вместо viewDidLoad. Это вызывается каждый раз, когда вы возвращаетесь на вкладку 1

person user387184    schedule 19.09.2011

Реализуйте метод ниже в своем делегате приложения

- (void)tabBarController:(UITabBarController *)controller willBeginCustomizingViewControllers:(NSArray *)viewControllers {

    UINavigationController *nc;
    nc = viewController;

    if(controller.selectedIndex == 3){
        [[nc.viewControllers objectAtIndex:0] replaceSubView];
    }
}

Здесь, если (controller.selectedIndex == 3)

3 = ваш индекс viewcontroller, в котором вы хотите изменить subview.

И «replaceSubView»

это ваш метод в контроллере представления, в котором вы хотите изменить подпредставление.

Сообщите мне, если возникнут трудности.

Ваше здоровье.

person Nishant B    schedule 19.09.2011
comment
каждый раз, когда я добавляю новое подвид при смене вкладок ... это мешает высоте изображений, а панель вкладок скрыта ... пожалуйста, помогите - person iOSDev; 21.09.2011
comment
Я вас неправильно понимаю. У вас панель вкладок скрыта, тогда как вы на нее нажмете? - person Nishant B; 21.09.2011

Превратите MainWindow или AppDelegate в UITabBarDelegate, затем используйте - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item для захвата выбора вкладок. Когда выбрана нужная вкладка, используйте свойство image UITabBarItem, чтобы установить понравившееся изображение.

person Valeriy Van    schedule 19.09.2011