Перезагрузите UIViewController и Xib - PullRequest
1 голос
/ 01 апреля 2011

У меня есть приложение, в котором есть MyViewController с двумя подклассами, MyViewControllerMain и MyViewControllerSettings.

В MyViewControllerSettings я разрешаю пользователю изменять шрифт, цвет и т. Д. Как я могу дать MyViewControllerMain команду обновить себя, чтобы отобразились изменения?

Спасибо, Tony

Вот что я делаю:

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

И в моем классе DerView MainView в viewWillAppear я делаю это:

tfName.font = m_MyFont;

Ответы [ 2 ]

1 голос
/ 01 апреля 2011

Это зависит - если у вас есть, скажем, UILabel, UIButton или подобное в вашем MyViewControllerMain и вы меняете их шрифт / цвет, они должны обновлять себя (убедитесь, что вы действительно установили шрифт, цвети т.д!).

В противном случае вы всегда можете попробовать [[myViewController view] setNeedsDisplay].

0 голосов
/ 01 апреля 2011

Для этого вам нужно перерисовать весь вид, используя ваши настройки.

Для каждого & каждого раза имя метода:

-(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.
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...