2010-03-31 3 views
1

Я разрабатываю приложение для iPhone, которое отображает несколько видов, все из которых находятся через элементы панели вкладок. Однако мне нужно добавить дополнительный элемент в панель вкладок, который просто запускает URL-адрес в Safari.iPhone TabBar отмена отмены

Я выполнил это, добавив пустой табличный вид в TabBar и вернув FALSE из shouldSelectViewController, когда нажата кнопка tabBarItem этого представления, и одновременно запускает Safari.

Этот код:

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController { 
if([[viewController tabBarItem] title] == "Website"){ 
      //... launch Safari 
    return FALSE; 
} else { 
    return TRUE; 
} 
} 

ПРОБЛЕМА: Если TabBar имеет слишком много элементов, и эта вкладка «Сафари Launch» отталкивается к «More» навигационного контроллера, я потеряю возможность перехватывать событие и предотвращать загрузку изображения при нажатии.

Любые предлагаемые советы?

+1

Мое предложение состоит в том, что вы не используете TabBar таким образом. Это не соответствует поведению, которое пользователи ожидают от элемента TabBar. Используйте знакомые элементы пользовательского интерфейса так, как пользователи знакомы. – glorifiedHacker

ответ

1

Вы можете подумать, что на этой вкладке просто отображается UIWebView с веб-сайтом.

Я второй прославилХакер в том, что наличие элемента панели вкладок завершает работу приложения и запускает другое поведение не ожидается.

+0

Согласен. Я перепроектирую, чтобы панель вкладок продолжала управлять представлениями, как и ожидалось. Я создам новое представление, содержащее кнопку для запуска внешнего URL-адреса. –

0

Моя идея заключается в том, что если вы не разрешаете пользователям настраивать элементы панели вкладок, «Safari Launch», нажимая на «Больше», никогда не произойдет. Вы можете предотвратить редактирование, установив customizableViewControllers вашей панели вкладок в нуль или пустой массив.

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