Как получить доступ к выбору UITableView subview? - PullRequest
3 голосов
/ 14 мая 2009

Я создал UIViewController (AnestDrugCalcViewController), в котором есть кнопка, открывающая UITableViewController (DrugTableViewController) для выбора лекарства. DrugTableViewController заполняется на основе NSMutableArray и состоит из нескольких NSDictionary объектов (drugName, drugDose, drugConcentration и т.

Я могу открыть DrugTableViewController, поместив его в стек навигации, но я не могу понять, как определить из моего AnestDrugCalcViewController свойства выбранного элемента.

//  DrugTableViewController.h
#import <UIKit/UIKit.h>

@interface DrugTableViewController : UITableViewController {
NSMutableArray          *drugList;
NSIndexPath *lastIndexPath;
IBOutlet UITableView    *myTableView;
NSObject *selectedDrug;
}

@property (nonatomic, retain) NSArray *drugList;
@property (nonatomic, retain) UITableView *myTableView;
@property (nonatomic, retain) NSObject *selectedDrug;

@end

Верх DrugTableViewController.m #import "DrugTableViewController.h"

@implementation DrugTableViewController

@synthesize drugList,myTableView, selectedDrug; 

Ответы [ 2 ]

3 голосов
/ 14 мая 2009
Метод

UITableView -indexPathForSelectedRow позволит вам определить, какая строка выбрана:

NSIndexPath *selectionPath = [vwDrugTable indexPathForSelectedRow];
if (index) {
    NSLog(@"Selected row:%u in section:%u", [selectionPath row], [selectionPath section]);
} else {
    NSLog(@"No selection");
}

Чтобы получать уведомления при изменении выбора, внедрите tableView:didSelectRowAtIndexPath: в делегат табличного представления:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"Selection Changed");
}
3 голосов
/ 14 мая 2009

В vwDrugTable может быть свойство, которое сохраняет выбранную строку, когда пользователь выбирает ее. Затем, после того как это табличное представление будет удалено и вы вернетесь в vwCalc, просто получите данные из этого свойства.

Это значит, что в vwDrugTable есть что-то вроде этого:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    self.selectedDrug = [self.drugs objectAtIndex:indexPath.row];
}

Тогда просто получите доступ к selectedDrug из vwCalc, когда вам это нужно.

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