2012-10-13 6 views
0

나는 앱의 다른 위치에 액세스 할 수있는 UIViewController가 있습니다. 첫 번째 것은 대시 보드에서 가져오고 두 번째는 TabBar에서 가져옵니다. 이 UIViewController 사용자가 다른 데이터에 대한 검색을 내버려 두지 만 내 문제는 사용자가 마지막으로 검색을 유지하고 사용자가 UIViewController를 열 때마다 그것을 표시하고 싶습니다. 내가 어떻게 할 수 있니?UIViewController의 다른 인스턴스에 데이터를 유지하는 방법?

+1

http://whathaveyoutried.com/ –

답변

0

하나의 옵션은 어느 곳에서나 액세스 할 수있는 일부 전역 개체에 마지막 검색을 저장하는 것입니다. 마지막 검색을 관리하는 싱글 톤 객체를 사용하는 것이 좋습니다. 이 객체는 앱 실행시 생성 될 수 있으며 UIViewController가 필요할 때마다 마지막 검색을 검색하는 데 사용됩니다.

@interface AppStorage : NSObject 

@property (strong, monatomic) NSString *lastSearch; 

+(AppStorage *)sharedAppStorage; 

@end 

AppStorage.m이

.... 
@synthesize lastSearch; 

-(id)init{ 
    self = [super init]; 
    if(self) 
    { 
     //load last search from a saved file 
    } 
} 

+(AppStorage *)sharedAppStorage{ 
    static AppStorage *sharedAppStorage = nil; 
    if(!sharedAppStorage){ 
     sharedAppStorage = [[super allocWithZone:nil]init]; 
    } 
    return sharedAppStorage; 
} 

.... 

당신은 다음 앱 어디에서나 저장된 검색에 액세스 할 수 있습니다

AppStorage.h :

0

당신은 같은 싱글 톤 클래스를 만들 수 를 사용하여 :

NSString *savedSearch = [[AppStorage sharedAppStorage] lastSearch]; 

저장된 검색이 앱 종료를 통해 지속되도록하려면 NSUserDefaults 또는 CoreData를 사용하여 검색을 저장해야합니다. 그것들은 잘 문서화되어있다.

참고 : 검색 저장 방법을 모르므로 위의 예에서 원하는대로 NSString을 변경할 수 있습니다.

0

사용자가 열 때마다 항상 새 UIViewController를 만들어야하며 AppDelegate와 같은 단독 개체의 강력한 참조로 유지해야합니다.

그러면이 게시물에서 TMilligan이 수행 한 것처럼 싱글 톤 인스턴스를 생성하고 매번 새로운 UIViewController에 전달할 수 있습니다.

이렇게하면 메모리 관리를 가장 잘 처리 할 수 ​​있습니다.

관련 문제