2010-01-18 2 views
1

저는 한 번 선언하고 여러보기 컨트롤러에서 액세스하기를 원하는 어레이 arryImages가 있습니다. 그러나 배치 할 위치를 파악할 수는 없습니다. iphone dev보기 컨트롤러 수를 사용하여 배열을 만들 수 있습니다.

나는 별도의 클래스 (I 배열에 액세스 할) 내가 추가 한 나의의 ViewController 클래스에서 다음 코드

@implementation Variables 

//images array 
arryImages = [NSArray arrayWithObjects: 
       [UIImage imageNamed: @"ico-company.png"], 
       [UIImage imageNamed: @"ico-value.png"], 
       [UIImage imageNamed: @"ico-date.png"], 
       [UIImage imageNamed: @"ico-notes.png"], nil]; 

@end 

을 포함 (Variables.m)가 :

#import "Variables.h" 

@synthesize로 재생 해봤지만 arrayImages 배열에 액세스 할 수 없습니다.

(imageView2.image = [arryImages objectAtIndex : [indexPath row]] 호출을 사용합니다.) Ps. 이 코드는 코드 바로 위에있을 때 완벽하게 작동하지만 별도의 클래스에서는 작동하지 않습니다.

무엇이 누락 되었습니까?

감사합니다.

답변

1

배열을 속성으로 선언해야합니다. 이것을 합성하고 ViewDidLoad 메서드에서 초기화하십시오.

즉 헤더를

@interface AddFriendViewController : UIViewController { 
NSArray *arryImages; 
} 

@property (nonatomic, retain) NSarray *arryImages ; 

@end 

구현 : 당신이보기 사이에 변수를 공유하려는 경우

@synthesize arryImages; 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    arryImages = [NSArray arrayWithObjects: 
      [UIImage imageNamed: @"ico-company.png"], 
      [UIImage imageNamed: @"ico-value.png"], 
      [UIImage imageNamed: @"ico-date.png"], 
      [UIImage imageNamed: @"ico-notes.png"], nil]; 
} 

, 당신은 거기에서 앱 위임 및 액세스를 넣어야합니다.

NSArray *arryImages = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] arryImages]; 
+0

나는 아직도 정확히 무엇을 의미하는지 알아 내려고합니다. 그리고 나는 이것을 수많은 뷰 콘트롤러에서 사용하기를 원합니다. 첫 번째 헤더가 appdelegate에 있어야하고 두 번째 비트가 ViewDidLoad에 있어야한다고 말하고 있습니까? 내가 그것을 만들어야하는 것처럼? 난 단지 applicationDidFinishStarting을 가지고있다 그리고 세 번째 코드는 arryImages에 액세스 할보기 컨트롤러로 이동합니까? DetailViewController.m 및 EditViewController.m 내가 한 번만 배열을 선언 할 : 예를 들어 , 나는 arryImages에 액세스 할 뷰 컨트롤러가 말할 수 있습니다. 코드는 어디로 이동합니까? – oberbaum

+0

귀하의 NSArray를 AppDelegate Header, init에 선언하고 AppDelegate 구현에 채우고 위에 게시 한 코드를 사용하여 액세스하십시오 : "NSArray * arryImages = [(MyAppDelegate *) [[UIApplication sharedApplication] delegate] arryImages ]; " –

+0

및 예 : viewdidload가 아니라 앱 대리인의 applicationDidFinishStarting입니다. –

관련 문제