2014-07-19 1 views
0

클래스 인스턴스가 있고 내 ViewController 메서드가 있습니다. appdelegate에서이 인스턴스와 메소드에 액세스 할 수 있습니까?AppController에서 ViewController 내에서 클래스 인스턴스로 작업하는 방법은 무엇입니까?

의 같은 :

@implementation FirstViewController 
@synthesize myObject; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    myObject = [[myObject alloc] initWithFrame:........]; 
    [self.view addSubview:myObject]; 
} 

-(void)viewWillDisappear:(BOOL)animated { 
    [super viewWillDisappear:animated]; 
    [myObject doSomething]; 
} 

내가 생각 누군가

- (void)applicationWillResignActive:(UIApplication *)application 
{ 
    [myObject do Something]; 
} 

AppDelegate에

에서 같은 방법으로 호출 할?

greetz

답변

0

당신은이 같은 rootViewConroller에서 컨트롤러를 얻고 당신의 도움을

- (void)applicationWillResignActive:(UIApplication *)application{ 

    UIViewController *controller = self.window.rootViewController; 

    if([controller isKindOfClass:[UINavigationController class]]){ 
      FirstViewController *firstViewController; 

      for (id vc in [((UINavigationController*)controller) viewControllers]) 
      { 
       if ([vc isKindOfClass:[FirstViewController class]]) 
       { 
        [((FirstViewController *) vc) doSomething]; 
        break; 
       } 
      } 
    } 
    else if([controller isKindOfClass:[FirstViewController class]]){ 
      [((FirstViewController *) controller) doSomething]; 

    }else{ 
     //Not found 
    } 
} 
+0

덕분에 많이 그것의 fucntion를 호출 할 수 있습니다. 흥미로운 솔루션! – Tobias

+0

만약'rootViewController'를'FirstViewController'로 알고 있다면 부분적으로 다른 부분을 쓰면 건너 뛸 수 있습니다. 그러나이 코드는 나중에 깨지지 않을 것입니다 – codester

+0

당신의 문제가 해결 되었습니까? – codester