重新加载UIViewController和xib

时间:2011-04-01 16:58:50

标签: iphone ipad ios4 xcode4

我有一个带有MyViewController的应用程序,它有两个子类,MyViewControllerMain和MyViewControllerSettings。

在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];

在我在viewWillAppear中安装的MainView类中,我这样做:

tfName.font = m_MyFont;

2 个答案:

答案 0 :(得分:1)

这取决于 - 例如,如果您在MyViewControllerMain中有UILabel,UIButton等,并且您更改了它们的字体/颜色,它们自行更新(确保您确实设置了字体,颜色等!)。

否则,您可以随时尝试[[myViewController view] setNeedsDisplay]

答案 1 :(得分: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.
    }