Intereting Posts
UITableViewController теряет функциональность прокрутки, если она представлена ​​в качестве модели CNContactViewController и SFSafariViewController на iOS не могут использоваться в UITabBarController исключения, не попавшие в iOS-симулятор из внешнего блока «C» с целевым 7 Использование AWSS3TransferManagerUploadRequest, как установить интервал времени ожидания? Сравнение NSStrings и предупреждение о NSNumbers Приложение не работает после его остановки из `xcode.` Xcode 6.1.1 Запуск изображений для универсальной сборки iOS UI Automation – Как я могу найти все UILabel в UITableCell с атрибутами доступности? Есть ли способ использовать NSPredicate для фильтрации объектов с использованием расчета расстояния между точками в CoreData Математическая операция NSDecimalNumber приводит к сбою приложения, когда UITextField содержит символ валюты Как создать токен Nonce для клиента iOS? Как управлять памятью для ios с большими файлами csv? UITableview и источник данных как NSMutableArray Как инициализировать пользовательский вид (контроллер), чтобы он работал как программно, так и в Interface Builder? изменить подпись в PSPDF dynamiclly

Передача данных обратно в родительский контроллер для разработки iOS

У меня проблема с отображением выбранных данных в detaillabeltext в одной из моих строк, кроме перезагрузки всей таблицы, какой-либо другой метод, чтобы перезагрузить только определенную строку раздела?

//RootViewController.m (родительский контроллер)

-(void) selectedData:(NSString*) text { selectedAbsenceType = text; NSLog(@"the absence type select is %@",text); } -(void) (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier]; if (indexPath.section == 0) { cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; } } NSDictionary *dictionary = [dataArray objectAtIndex:indexPath.section]; NSArray *array = [dictionary objectForKey:@"data"]; NSString *cellValue = [array objectAtIndex:indexPath.row]; cell.textLabel.text = cellValue; if([cellValue isEqual: @"Absence Type"]) { cell.detailTextLabel.text = selectedAbsenceType; } else if([cellValue isEqual:@"Start Date"]) { cell.detailTextLabel.text = selectedDate; } return cell; 

}

================================================== ========================================== У меня проблема, когда я вызываю метод протокола, он всегда запрашивает у меня ARC Semantic Issue в этом утверждении

 [self.delegate selectedData: (NSString*) [self.absenceTypes objectAtIndex:indexPath.row]];: 

//child.h

 #import <UIKit/UIKit.h> @protocol childViewControllerDelegate; @interface AbsenceTypesViewController : UITableViewController { id<childViewControllerDelegate>delegate; } @property (nonatomic,weak) id<childViewControllerDelegate> delegate; @property NSArray *absenceTypes; @end @protocol childViewControllerDelegate <NSObject> -(void) selectedData:(NSString*) text; @end //child.m #pragma mark - Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSString *selectedCell = nil; selectedCell = [self.absenceTypes objectAtIndex:indexPath.row]; [self.delegate selectedData: (NSString*) [self.absenceTypes objectAtIndex:indexPath.row]]; //[self.navigationController popViewControllerAnimated:YES]; NSLog(@"%@", selectedCell); } 

Удалить { id<childViewControllerDelegate>delegate; } { id<childViewControllerDelegate>delegate; } внутри интерфейса пользовательского класса. id<childViewControllerDelegate>delegate; означает сильную переменную, которая будет выпущена только при освобождении объекта. Но в объявлении свойства вы упоминаете делегата как слабое свойство. Следовательно, ARC Semantic дает вам предупреждение. Вы также можете сделать делегат слабым, объявив его слабым явно как __weak id<childViewControllerDelegate>delegate;

Попробуйте заменить содержимое файла .h на это.

 #import <UIKit/UIKit.h> @class AbsenceTypesViewController; @protocol childViewControllerDelegate <NSObject> -(void) selectedData:(NSString*) text; @end @interface AbsenceTypesViewController : UITableViewController { id<childViewControllerDelegate>delegate; } @property (nonatomic,weak) id<childViewControllerDelegate> delegate; @property NSArray *absenceTypes; @end 

Чтобы вы получили декларацию класса.

  You can save all selected option of second view controller in NSMutable Array and save all components separated by comma and send this array to your parent controller. NSMutableArray *selectedVal =[[NSMutableArray alloc] init]; FirstViewController *FVC = (FirstViewController*) if ([FVC isKindOfClass:[FirstViewController class]]) { [FVC setSelectedOption:[selectedVal componentsJoinedByString:@","]]; } [self.navigationController popViewControllerAnimated:YES];