Переход к другому виду с помощью кнопки в приложении панели вкладок

#iphone #uitabbarcontroller

#iPhone #uitabbarcontroller

Вопрос:

После поиска в Интернете и на этом форуме я не смог решить свою проблему.Я создаю приложение с панелью вкладок и тремя видами, управляемыми с помощью этой панели вкладок (ViewA, ViewB, ViewC). В одном из видов (ViewA) У меня есть кнопка, которую я хочу использовать для отображения одного из двух других видов (ViewB) (но не с помощью кнопки на панели вкладок).

С помощью этой кнопки я должен вызвать функцию, которая переключается с ViewA на ViewB, но функция находится в viewAcontroller.m, и с этого контроллера я не могу получить доступ к TabBarController, потому что я определил ее в AppDelegate.h.

Кто-нибудь знает, как получить доступ к TabBarController, определенному в AppDelegate.h, или другой способ переключения представлений с помощью функции из viewAController.m?

Действительно спасибо

Ответ №1:

Если у вас есть средство доступа к TabBarController в AppDelegate.h, вы можете попробовать это: [(AppDelegate *)[UIApplication sharedApplication].делегировать TabBarController]


У вас должен быть класс с именем XXXAppDelegate, содержащий XXXAppDelegate.h и XXXAppDelegate.m В XXXAppDelegate.h ему нравится вот так:

     @interface XXXAppDelegate : NSObject <UIApplicationDelegate>
    {
        XXXViewController *viewAcontroller;
    }

    // Add this line
    @property (assign) XXXViewController *viewAcontroller;

    @end
  

в XXXAppDelegate.m

Добавьте строку под вашим @implementation XXXAppDelegate

 @synthesis viewAcontroller;
  

Затем используйте эту строку, чтобы получить ссылку на ваш TabBarController
[(XXXAppDelegate *)[UIApplication sharedApplication].делегировать TabBarController]

Комментарии:

1. Это может быть, но если я попытаюсь написать (AppDelegate *) в viewAController, это не сработает. Я полагаю, что я должен определить это, но не знаю, где и как, не могли бы вы объяснить, как использовать этот аксессуар, пожалуйста? или где я мог бы научиться? Я не уверен, что понимаю, что это за аксессуар. Извините, я совсем новичок в разработке ios.

2. Пожалуйста, обратитесь к строкам выше, надеюсь, это поможет.

3. Действительно спасибо!! Наконец-то я решаю свою проблему благодаря вашему ответу. Искренне говоря, я не совсем понимаю, что я делаю, но я полагаю, что это тип ссылки на делегат, который контроллер создает для доступа к своим контроллерам и т.д. Еще раз спасибо!!