첫 번째 Viewcontroller의 IBOutlet에 AppDelegate 클래스로 액세스하려고합니다. 내 프로젝트는 스토리 보드을 기반으로하며 첫 번째 Viewcontroller에 대한 참조가 없습니다. 어떻게해야할까요? 이 IBOutlet을 첫 번째 Viewcontroller의 속성으로 설정해야하지만 AppDelegate에서 설정해야한다는 것을 알고 있습니다. 어떻게 접근 할 수 있습니까? 감사iOS : AppDelegate의 firstviewcontroller 액세스
0
A
답변
0
당신은 당신의 rootViewController
앱의 대리자에 액세스 할 수 있습니다
self.window.rootViewController
예 :
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
MyVCClass *firstVC = (MyVCClass*)self.window.rootViewController;
[firstVC someMethod];
}
조심, 당신의 ViewController가 시작/아직로드되지 않았을 수 있습니다.
0
앱의 UIWindow에 rootViewController를 설정하지 않았으므로
[[UIApplication sharedApplication].keyWindow rootViewController]
을 사용하면 nil이 표시됩니다.
당신이 rootViewController 같은 AppDelegate.m에서의 ViewController를 가져
UIViewController *vc = [self.navigationController.viewControllers objectAtIndex:0];
0
먼저 얻기 위해 단순히 당신이 할 수있는 다음 탐색을위한 스토리 보드를 사용하는 경우 : 다음
#import "YourViewController"
AppDelegate에에에게 .m 아래 코드를 넣으십시오.
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
YourViewController * view = [[YourViewController alloc]init];
self.window.rootViewController = view;
}
왜 그렇게해야합니까? 어쩌면 앱 아키텍처/디자인이 좋지 않을 수도 있습니다. – Larme
이 viewController를 어딘가에 앱 창의 rootViewController로 설정합니까? –