Проблемы с вызовом метода экземпляра - PullRequest
0 голосов
/ 31 августа 2011

Следующий код меняет имя вкладки и затем выбирает индекс 2.

[(UITabBarItem*)[self.rootController.tabBar.items objectAtIndex:0] setTitle:@"User"];

self.rootController.selectedIndex = 2;

Однако это работает, например, когда метод метода didFinishLaunching приложения, но не работает, когда вызывается следующим образом.кнопка запускает renameTabs:

- (IBAction) renameTabs: (id)sender
{
    CompanyAppDelegate *theInstance = [[CompanyAppDelegate alloc] init];
    [theInstance rename];

}

и в контроллере:

- (void) rename
    {

        [(UITabBarItem*)[self.rootController.tabBar.items objectAtIndex:0] setTitle:@"User"];

        self.rootController.selectedIndex = 2;

    }

функция переименования срабатывает и также определяется в .h.Нет ошибок, но ничего не меняется!Что-то не так??Спасибо

Ответы [ 3 ]

3 голосов
/ 31 августа 2011

Вы не должны создавать новые CompanyAppDelegate. Попробуйте реализовать метод sharedAppDelegate в CompanyAppDelegate.m:

+ (CompanyAppDelegate *)sharedAppDelegate
{
    return (CompanyAppDelegate *) [UIApplication sharedApplication].delegate;
}

Не забудьте объявить это в CompanyAppDelegate.h.

И заменить renameTabs на этот:

- (IBAction) renameTabs: (id)sender
{
    CompanyAppDelegate *theInstance = [CompanyAppDelegate sharedAppDelegate];
    [theInstance rename];
}
1 голос
/ 31 августа 2011
- (IBAction) renameTabs: (id)sender
{
    CompanyAppDelegate *theInstance = (CompanyAppDelegate *) [UIApplication sharedApplication].delegate;
    [theInstance rename];

}

- (void) rename
    {

        [(UITabBarItem*)[self.rootController.tabBar.items objectAtIndex:0] setTitle:@"User"];

        self.rootController.selectedIndex = 2;

    }
0 голосов
/ 31 августа 2011

[Ах, когда я впервые прочитал это, я подумал, что вы сказали, что переименование не достигнуто.Неважно.]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...