Выдвиньте ценности к новому ViewController, когда клетка будет выявляться

У меня есть табличное представление, которое населило с plist по имени "Htgg". Я пытаюсь выдвинуть стоимость к новому представлению по имени "DetailViewController".

Это - код:

#import "Glist.h"

#import "DetailViewController.h"

@implementation Glist
@synthesize htgg,detailViewController;


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = NSLocalizedString(@"ofek", @"ofek");
    }
    return self;
}

- (void)viewDidLoad
{

    [super viewDidLoad];

    self.navigationItem.title = @"איך להוציא גימלים?";
    NSString *htggFile = [[NSBundle mainBundle]pathForResource:@"Htgg" ofType:@"plist"];
    htgg = [[NSDictionary alloc] initWithContentsOfFile: htggFile];

}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
   //Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
   //Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   //Return the number of rows in the section.
    return [htgg count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }


    id keys = [htgg allKeys];


    //Get all the keys in the first dictionary (the keys are: "good", "funny", "New - Item 3")
    //This is an array, so you can do this: array[0] (in C#)

    //Here we tell the tableview cell. to put in the text - [keys objectsAtIndex:indexPath.row]; if the row is 0, we will get: "good", if 1, we will get "funny"
    cell.textLabel.text = [keys objectAtIndex:indexPath.row];


    return cell;
}

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
   //Return NO if you do not want the specified item to be editable.
    return NO;
}

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *showPickedSolution = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:showPickedSolution animated:YES];


    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}
@end

Кодекс работает прекрасный, но он не выдвигает ценность ряда (все ряды plist - строковый тип и выше есть 'Корень').

Я нуждаюсь в вашей помощи, чтобы выдвинуть стоимость к другому представлению (DetailViewController).

0
nl ja de

3 ответы

сделайте собственность в вашем DetailViewController того же самого типа с ваших данных, вы хотите выдвинуть тогда использование

DetailViewController *showPickedSolution = [[DetailViewController alloc]  
 initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
 showPickedSolution.yourPropertName = [htgg objectAt:indexPath.Row];      

[self.navigationController pushViewController:showPickedSolution animated:YES];

можно теперь получить доступ к переданному dat в вашем DetailViewController в недвижимости.

Пожалуйста, проверьте синтаксис.

1
добавлено

Я сделал это двумя различными способами в зависимости от сценария:

1) Делегат, когда я заполняю некоторые ценности на форме, которую я хочу пасовать назад к оригинальному экрану.

2) Переход раскадровки, когда я хочу послать некоторую ценность (ценности) во второй экран.

Я обычно помещал все ценности, которые я хочу во множестве послать объекту, и затем при прибытии я извлекаю то, в чем я нуждаюсь.

Instead of explaining each way, I can refer you to Getting Started section of the iOS Dev Site.

Я надеюсь, что это помогает!

0
добавлено

Чтобы достигнуть этого, вы можете, сделал NSString собственность в классе DetailViewController и установил ту собственность в didSelectRowAtIndexPath . Вот код для вашей справки:

showPickedSolution.valueToBeSent = [htgg valueForKey:[[htgg allKeys] objectAtIndex:indexPath.row]];

Можно использовать этот valueToBeSent в вашем DetailViewController класс.

0
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.