iPhone xcode - индикатор активности с контроллером панели вкладок и контроллерами просмотра нескольких таблиц - PullRequest
1 голос
/ 20 апреля 2010

Я искал учебник и не могу найти его для индикатора активности в навигационной панели табличного представления. в моем mainWindow.xib у меня есть контроллер панели вкладок с 4 контроллерами вкладок, каждый из которых содержит табличное представление. каждая загрузка JSON-каналов с использованием фреймворка, размещенного в Google.

В одном из моих View Controller я могу добавить индикатор активности на панель навигации, используя:

UIActivityIndicatorView *activityIndcator = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0,0,20,20)];
[activityIndcator startAnimating];
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:activityIndcator];
self.navigationItem.rightBarButtonItem = activityItem;

однако и можете отключить его с помощью:

self.navigationItem.rightBarButtonItem.enabled = FALSE;

Но если я добавлю это в событие viewDidLoad, оно будет отображаться постоянно. Я хочу, чтобы он отображался только при выборе строки в представлении таблицы. поэтому я добавил его в верхней части didSelectRowAtIndexPath и в строке остановки после загрузки канала. это показывает, но занимает секунду или две, и показывает только около половины секунды.

является ли событие, которое запускается перед событием didSelectRowAtIndexPath, типом события загрузки? если нет, то каков стандартный менторд для реализации такой функциональности?

Ответы [ 2 ]

1 голос
/ 03 февраля 2012

В .h файле

 @property (nonatomic,retain) UIActivityIndicatorView *spinner;

В .m файле, @synthesize spinner;// также освободить в dealloc

В viewDidLoad сделать это:

UIActivityIndicatorView *activityIndcator = [[UIActivityIndicatorView alloc]    
       initWithFrame:CGRectMake(0,0,20,20)];
self.spinner = activityIndicator;
spinner.hidesWhenStopped = YES; // this is the default, but never hurts to be sure
UIBarButtonItem *activityItem = [[UIBarButtonItem alloc] initWithCustomView:spinner];
self.navigationItem.rightBarButtonItem = activityItem;

В didSelectRowAtIndexPath сделать это:

 [self.spinner startAnimating];

Когда канал будет завершен, сделайте следующее:

 [self.spinner stopAnimating];
1 голос
/ 20 апреля 2010

Надеюсь, эта ссылка поможет вам. Это объясняет, как отобразить индикатор активности для разбора действия RSS-канала.

Всего наилучшего.

...