2011-04-01 122 views
1

我有一個應用程序有一個MyViewController與兩個子類MyViewControllerMain和MyViewControllerSettings。重新加載UIViewController和xib

在MyViewControllerSettings中,我允許用戶更改字體,顏色等。如何指示MyViewControllerMain自行刷新,以便更改顯示?

感謝, 託尼

下面是我在做什麼:

I initialize it in viewDidLoad of my superclass like this: 

m_fFontSize = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? 28 : 16; 
m_MyFont = [UIFont fontWithName:@"Greg's Hand" size:m_fFontSize]; 

然後在派生設置類,我這樣做:

NSString * sFont = [fontList objectAtIndex:row]; 
m_MyFont = [UIFont fontWithName:sFont size:m_fFontSize]; 

在我dervied的MainView類在viewWillAppear,我這樣做:

tfName.font = m_MyFont; 

回答

1

這取決於 - 如果你的MyViewControllerMain中有一個UILabel,UIButton或類似的東西,並且你改變了他們的字體/顏色,他們應該更新自己(確保你真的設置了字體,顏色等!)。 。您可以隨時嘗試[[myViewController view] setNeedsDisplay]

0

爲此,您需要使用您的設置重新繪製整個視圖。

對於每一次每&,方法名稱:

-(void)viewWillAppear:(BOOL)animated 
{ 
     [super viewWillAppear:animated]; 

      //Over here just set the font size of all the controllers you are using. 
      This will definitely solve your problem since this method is called every time before the View Appears. 
    } 
+0

阿賈伊,我試過了,它似乎並沒有工作。我有一個成員變量與我的字體,並在設置頁面我將該成員變量更改爲新的字體。當我回到主頁viewWillAppear不會被調用,我正在執行:textField.font = m_MyFont,但它不會更改字體。有任何想法嗎? – LilMoke 2011-04-01 18:04:01

+0

你的成員變量m_MyFont是否保留更新後的值?只要嘗試在ViewWillAppear中打印另一件事情,請確保你沒有將字體大小設置在其他地方。 – 2011-04-01 18:23:11

+0

請參閱原文中的編輯。 – LilMoke 2011-04-01 18:30:08