2013-04-02 3 views
0

Я разработал приложение для ios, используя uitabbar. На вкладке у меня есть некоторый uitableview, приводящий к некоторому uiview. Например:Как поместить представления в uitabbar?

A: кнопка TabBar -> B: Table View -> C: Просмотр по отношению к линии зрения таблицы подводные камни и течения пользователем

Нормальное поведение TabBar является то, что, если я нажимаю до представления, которое я обозначил как «C», затем нажмите другую кнопку «Tabbar» и нажмите кнопку «Tabbar», которую я указал как «A», я нашел открытое представление «C» вместо «B» (таблица вид, вызываемый кнопкой вкладки). Теперь я бы хотел, чтобы вкладка всегда была в первом представлении (в данном случае B, даже если пользователь нажал до C) Для этого я использую этот код в своем appdelegate, чтобы быть уверенным, что он имеет одинаковый даже в случае кнопки «Больше кнопок».

UITabBarController* tabBarController2 = (UITabBarController*)self.window.rootViewController; 

if ([viewController isKindOfClass:[UINavigationController class]]) { 
    [tabBarController2.selectedViewController popToRootViewControllerAnimated:NO]; 
} 
if (tabBarController2.selectedIndex < 4) { 
    [tabBarController2.moreNavigationController popViewControllerAnimated:NO]; 
} 

Иногда, когда он пытается поп-музыки, приложение падает. Что я делаю не так?

Линия

[tabBarController2.selectedViewController popToRootViewControllerAnimated:NO]; 

пожары это предупреждение "AppDelegate.m: 27: 10: 'UIViewController' может не реагировать на" popToRootViewControllerAnimated:"

+1

предупреждение означает, что вы пытаетесь вызвать * popToRootViewControllerAnimated * на * UIViewController * вместо * UINavigationController * – rdurand

+0

у вас все еще есть табуляция :) –

+0

yea !! Я был уверен, что проблема решена, но во время тестирования начался сбой .. Это бесконечная история ...: _ ( –

ответ

3

Один из способов я хотел бы предложить вам, что в вашем методе UIView viewWillDisapear напиши следующий код:

[self.navigationController popToRootViewControllerAnimated:NO]; 
+0

отлично работает !! Я больше не экспериментировал! Спасибо большое! –

+1

Звучит неплохо! :) –

1
popToRootViewControllerAnimated: 

Это метод UINavigationController класса, и вы используете его для UITabBarController, который является интернетом подкласса UIViewController.

Try:

[(UINavigationController *)tabBarController2.selectedViewController popToRootViewControllerAnimated:NO]; 
+0

Вы правы .. это чисто, чтобы отливать? Нет эквивалентного метода (или способа сделать это) в –

+0

, так что это сработало ??? –

+0

нет предупреждения, но все еще сбой -3- –

 Смежные вопросы

  • Нет связанных вопросов^_^