2012-05-04 51 views
0

我在UIPopoverController中有一個UISwitch,當您打開彈出窗口VC時,它的默認設置爲ON。我試圖將它設置爲當您將其設置爲「OFF」並關閉UIPopover時 - 當您重新打開彈出窗口時,UISwitch的狀態保持不變。對於我的生活,我無法弄清楚這一點,我敢打賭這真的很簡單。我想知道是否有人能夠指出我正確的方向?任何幫助將非常感謝,謝謝!解除UIPopover時,UISwitch不會保持關閉狀態

[編輯]這是我的工作代碼:

//--NEW CODE--// 
#define SWITCH_KEY_STATE @"Save UISwitch State" 

- (IBAction)settingsPopover:(id)sender { 
    if(![pop isPopoverVisible]){ 
     settings = [[settingsView alloc] initWithNibName:@"settingsView" bundle:nil]; 
     settings.setDelegate = self; 
     pop = [[UIPopoverController alloc] initWithContentViewController:settings]; 
     [pop setPopoverContentSize:CGSizeMake(200, 100)]; 
     [pop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 
     //--NEW CODE--// 
     popoverState = [NSUserDefaults standardUserDefaults]; 
     self.settings.hintSwitch.on = [popoverState boolForKey:SWITCH_KEY_STATE]; 

     [self.settings.hintSwitch addTarget:self action:@selector(onOff:) forControlEvents:UIControlEventValueChanged]; 
    } else { 
     [pop dismissPopoverAnimated:YES]; 
    } 
} 

這是創建酥料餅的[self.settings.hintSwitch...功能是酥料餅(設置)呼籲UISwitch它時,它的互動用它運行這個空間功能:

- (void)onOff:(id)sender { 
    if (settings.hintSwitch.on) { 
     tutView.hidden = NO; 
    } else { 
     tutView.hidden = YES; 
    //--NEW CODE--// 
    popoverState = [NSUserDefaults standardUserDefaults]; 
    [popoverState setBool:self.settings.hintSwitch.on forKey:SWITCH_KEY_STATE]; 
     } 
    } 

使作品發現它只是當我關閉酥料餅,然後重新打開它,它重置UISwitch爲「ON」。

[編輯2]我已經編輯了上面的代碼,我已經添加了。哪些工作!

+0

答案很簡單:在關閉彈出窗口時保存狀態並在重新打開時修改它。 但是你必須發佈一些代碼,因爲適合你的答案取決於你的代碼。 –

+0

好酷感謝,我編輯了我的第一篇文章,包括代碼。 – Ollie177

回答

1

我首先看到的是這行代碼:

pop = [[UIPopoverController alloc] initWithContentViewController:settings]; 

有了它,你再頁頭每次控制器時間,與初始設置初始化它(關於默認值)。

你有這樣的解決方案:

  1. 前解僱你popovercontroller
  2. 一旦你初始化它,您可以使用創建的類BOOL稱爲像「popoverState」
  3. 保存UISwitch的狀態新變量設置開關的狀態

讓我吧!

+0

很感謝,我會試試看,讓你知道! – Ollie177

+0

好吧,我想我已經得到了它的工作,這對你的幫助。我按照你所說的去完成了,最後看着NSUserDefaults,所以我會在上面發佈我的新代碼。這是有效的,如果你能看到任何問題,讓我知道,但否則這就是你給的解決方案,真的很有幫助! – Ollie177