2014-09-06 6 views
0

Вчера я работал над проектом, и я наткнулся на эту ошибку. Удержал меня всю ночь! Еще нет ответа, который исправляет МОЮ ОШИБКУ! Так что происходит, когда я нажимаю на свою ячейку, а не на следующий контроллер. Я сделал прототип и все такое. Поэтому перед тем, как он дал сигнал sgbart или что-то еще, я исправил его, добавив это.Tableview segue не работает?

Это было в - (Недействительными) viewDidLoad

[self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier]; 

Ошибка подходило здесь -

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 

Теперь все, что фиксировано. Теперь, когда я иду и щелкаю по ячейке, он не работает. Это проект чтения RSS. Вот полный код.

// 
// AppMain.m 
// fcffv 
// 
// Created by Ajay Venkat on 6/09/2014. 
// Copyright (c) 2014 AJTech. All rights reserved. 
// 

#import "AppMain.h" 
#import "AppDetail.h" 
@interface AppMain() { 
    NSXMLParser *parser; 
    NSMutableArray *feeds; 
    NSMutableDictionary *item; 
    NSMutableString *title; 
    NSMutableString *link; 
    NSString *element; 
} 
@end 
@implementation AppMain 
- (void)awakeFromNib 
{ 
    [super awakeFromNib]; 
} 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    static NSString *CellIdentifier = @"Cell"; 
    [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:CellIdentifier]; 
    feeds = [[NSMutableArray alloc] init]; 
    NSURL *url = [NSURL URLWithString:@"http://bountyboulevardss.eq.edu.au/?cat=3&feed=rss2"]; 
    parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 
    [parser setDelegate:self]; 
    [parser setShouldResolveExternalEntities:NO]; 
    [parser parse]; 
} 

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

#pragma mark - Table View 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return feeds.count; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
    cell.textLabel.text = [[feeds objectAtIndex:indexPath.row] objectForKey: @"title"]; 
    return cell; 

} 
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict { 

    element = elementName; 

    if ([element isEqualToString:@"item"]) { 

     item = [[NSMutableDictionary alloc] init]; 
     title = [[NSMutableString alloc] init]; 
     link = [[NSMutableString alloc] init]; 

    } 

} 

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { 

    if ([elementName isEqualToString:@"item"]) { 

     [item setObject:title forKey:@"title"]; 
     [item setObject:link forKey:@"link"]; 

     [feeds addObject:[item copy]]; 

    } 

} 

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string { 

    if ([element isEqualToString:@"title"]) { 
     [title appendString:string]; 
    } else if ([element isEqualToString:@"link"]) { 
     [link appendString:string]; 
    } 

} 

- (void)parserDidEndDocument:(NSXMLParser *)parser { 

    [self.tableView reloadData]; 

} 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([[segue identifier] isEqualToString:@"showDetail"]) { 

     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
     NSString *string = [feeds[indexPath.row] objectForKey: @"link"]; 
     [[segue destinationViewController] setUrl:string]; 

    } 
} 

@end 

Спасибо, ребята, за помощь. Кстати, я сделал все повторные поиски, которые я смог сделать, и все это оставляет меня в неудаче и даже больше ошибок, поэтому, пожалуйста, попробуйте помочь мне, ребята. Также я новичок в Objective-C.

Благодарим людей, которые не торопитесь, чтобы помочь мне. Это проект, важный для школы.

ответ

1

Вы реализуете метод didSelectRowatIndex? И установите делегата?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 

Приветствия С.

+0

Спасибо очень помогли! – Xcoder

+0

Извините, umm, что мне делать, когда я реализую этот код? Я помещаю это в реализацию и put {}? Если да, то что я в него вкладываю ??? – Xcoder

+0

Если вы установите делегатов источника данных и для таблицы View, этот метод будет автоматически звонить после нажатия ячейки – Salsores

Смежные вопросы