我有一個基於UITabBarController
的應用程序。我已經創建了一個masterVC
類,構成tabBarController
的所有ViewController都是masterVC
的子類。我想設置一個UIImageView(這是一個masterVC
的屬性),一旦設置在tabBarController
內的每個視圖上顯示該圖像。在TabBar中的視圖控制器之間共享UIImageView
如果我正在實例化每個VC,我可以將該圖像作爲屬性傳遞(這很簡單)。但是,在tabBarController ViewControllers之間沒有辦法做到這一點。
我試圖做的最簡單的概念示例是通過此示例在tabBarController中的每個視圖中的控制器。必須有一個更好的辦法:
-(void)viewDidAppear:(BOOL)animated
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *data = [defaults objectForKey:kMainImageData];
if (data) {
self.mainImageView.image = [NSKeyedUnarchiver unarchiveObjectWithData:data];
}
}
-(void)viewWillDisappear:(BOOL)animated
{
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.mainImageView.image];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:kMainImageData];
}
丹,我不熟悉initWithCoder方法。將這部分:'//初始化圖像與你的圖像'是我最初設置圖像? – Eric
@Eric是的,它會,但是你初始化它,如果你是從一個資源加載它,或從一些下載的數據,或什麼。'initWithCoder'方法是在視圖控件上調用的init方法,通過XIB或故事板實例化 –