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