Как перестать загружать вид при выборе элемента на вкладке? - PullRequest
1 голос
/ 16 мая 2011

У меня есть контроллер вкладок с тремя вкладками.В первой вкладке у меня есть контроллер навигации.Теперь пользователь перемещается на первой вкладке, чтобы выполнить платеж, поэтому я отключил кнопки возврата по умолчанию, так как я не хочу, чтобы пользователь использовал кнопку возврата между транзакциями.Но когда пользователь снова нажимает на вкладку, он / она переходит к корневому представлению.Как определить выбор панели вкладок или как избежать повторной загрузки вкладки?

Пожалуйста, помогите мне в этом !!Спасибо !!

Примечание: я не уверен, что мой вопрос уже был дан ответ на stackoverflow в каком-то другом сообщении, но я выполнил поиск и не получил никакого ответа.Если это так, пожалуйста, не стесняйтесь перенаправить меня к этому ответу и удалить этот пост.Спасибо!

Ответы [ 3 ]

5 голосов
/ 16 мая 2011

Проверьте ссылку на протокол UITabBarControllerDelegate .

Основная идея заключается в том, что селектор tabBarController:shouldSelectViewController: в вашем делегате UITabBarController вызывается всякий раз, когда пользователь нажимает на элемент вкладки.

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

Итак, просто верните NO из этого селектора на тот случай, если вы хотите предотвратить замену текущего контроллера представления, т. Е. Когда транзакция продолжается.

1 голос
/ 08 сентября 2011

Вы должны сделать это следующим образом ..

- (BOOL)tabBarController:(UITabBarController *)tbc shouldSelectViewController:(UIViewController *)vc
{     
    UIViewController *tbSelectedController = tbc.selectedViewController;
    if ([tbSelectedController isEqual:vc])
    {         
        return NO;     
    }      
    return YES; 
} 
0 голосов
/ 16 мая 2011

Когда пользователь переходит к контроллеру платежей, вы можете скрыть панель вкладок.

Используйте этот код в своем коде при переходе к другому виду

yourcontroller.hidebottombarwhenpushed = ДА;

...