vendredi 9 janvier 2015

How to use a segue when prototype cells are not working


Vote count:

0




I have an RSS reader that displays the feed and then when a custom cell is clicked should bring you to the article. It was all working correctly but then I changed it so that it would work with custom cells. In order to do this I had to delete all the prototype cells from the storyboard which subsequently deleted the segue between the cell and the detail view. When I add a prototype cell back in the app crashes without any errors. I am very confused. How can I bring this to a detail view without using prototype cells or a segue? I tried didSelectRowAtIndexPath but this is a UIViewController not a UITableViewController. My code for the tableview is below let me know if you have any ideas..



#import "APPMasterViewController.h"

#import "APPDetailViewController.h"
#import "IITableViewCell.h"

@interface APPMasterViewController () {
NSXMLParser *parser;
NSMutableArray *feeds;
NSMutableDictionary *item;
NSMutableString *title;
NSMutableString *link;
NSString *element;
}
@end

@implementation APPMasterViewController

- (void)awakeFromNib
{
[super awakeFromNib];
}

- (void)viewDidLoad {
[super viewDidLoad];
[[UINavigationBar appearance] setBarTintColor:[UIColor greenColor]];

feeds = [[NSMutableArray alloc] init];
NSURL *url = [NSURL URLWithString:@"http://ift.tt/1nLBPzZ"];
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 *simpleTableIdentifier = @"IITableViewCell";

IITableViewCell *cell = (IITableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil)
{
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"IITableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}

cell.mainTextLabel.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];

}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{

return 78;
}


- (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


asked 47 secs ago







How to use a segue when prototype cells are not working

Aucun commentaire:

Enregistrer un commentaire