Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @interface SecondViewController : UIViewController {
- NSMutableArray *short_desc;
- }
- - (IBAction)search:(id)sender;
- @end
- - (IBAction)search:(id)sender {
- UIViewController *artikel = [[UIViewController alloc] init];
- artikel.title = @"Artikel";
- artikel.view = resultView;
- BOOL pushViewController = [self xmlRequest];
- if (!pushViewController) {
- UIAlertView *errorAlert = [[UIAlertView alloc] initWithTitle:@"Hinweis" message:@"Für Ihre Suchanfrage wurden keine passenden Einträge in der Datenbank gefunden" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
- [errorAlert show];
- }
- else {
- [self.navigationController pushViewController:artikel animated:YES];
- [tableView reloadData];
- }
- }
- - (BOOL)xmlRequest {
- NSString *p1, *p2, *p3, *p4, *p5, *p6;
- p1 = [NSString stringWithFormat:@"%d", ([pickerView selectedRowInComponent:0] + 1)];
- p2 = [NSString stringWithFormat:@"%d", ([pickerView selectedRowInComponent:1] + 2010)];
- switch ([pickerView selectedRowInComponent:2]) {
- case 0:
- p3 = @"Deutschland";
- break;
- case 1:
- p3 = @"Österreich";
- break;
- case 2:
- p3 = @"Schweiz";
- break;
- default:
- break;
- }
- p4 = cityField.text;
- p5 = branchField.text;
- p6 = messeNameField.text;
- NSString *url = [NSString stringWithFormat:A4M_XML_SERVICE, p1, p2, p3, p4, p5, p6];
- NSString *xmlString = [NSString stringWithContentsOfURL:[NSURL URLWithString:url]];
- NSString *xmlStringUTF8 = [NSString stringWithUTF8String:[xmlString UTF8String]];
- CXMLDocument *xmlDoc = [[CXMLDocument alloc] initWithXMLString:xmlStringUTF8 options:0 error:nil];
- NSString *result;
- NSString *error;
- short_desc = [NSMutableArray arrayWithCapacity:10];
- name = [NSMutableArray arrayWithCapacity:10];
- location = [NSMutableArray arrayWithCapacity:10];
- startDate = [NSMutableArray arrayWithCapacity:10];
- //Check for nil:
- NSArray *nodes = [xmlDoc nodesForXPath:@"/xml/items" error:nil];
- if (nodes != nil && [nodes count] >= 1) {
- for (int i = 0; i < [nodes count]; i++) {
- CXMLElement *resultElement = [nodes objectAtIndex:i];
- error = [[[[resultElement attributeForName:@"count"] stringValue] copy] autorelease];
- }
- }
- if ([error intValue] == 0) {
- return NO;
- }
- //Short-Description:
- nodes = [xmlDoc nodesForXPath:@"/xml/items/item/short_desc" error:nil];
- if (nodes != nil && [nodes count] >= 1) {
- for (int i = 0; i < [nodes count]; i++) {
- CXMLElement *resultElement = [nodes objectAtIndex:i];
- result = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease];
- [short_desc addObject:result];
- }
- }
- //Name:
- nodes = [xmlDoc nodesForXPath:@"/xml/items/item/name" error:nil];
- if (nodes != nil && [nodes count] >= 1) {
- for (int i = 0; i < [nodes count]; i++) {
- CXMLElement *resultElement = [nodes objectAtIndex:i];
- result = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease];
- [name addObject:result];
- }
- }
- //Location:
- nodes = [xmlDoc nodesForXPath:@"/xml/items/item/location" error:nil];
- if (nodes != nil && [nodes count] >= 1) {
- for (int i = 0; i < [nodes count]; i++) {
- CXMLElement *resultElement = [nodes objectAtIndex:i];
- result = [[[[resultElement attributeForName:@"data"] stringValue] copy] autorelease];
- [location addObject:result];
- }
- }
- //Date:
- nodes = [xmlDoc nodesForXPath:@"/xml/items/item/date" error:nil];
- if (nodes != nil && [nodes count] >= 1) {
- for (int i = 0; i < [nodes count]; i++) {
- CXMLElement *resultElement = [nodes objectAtIndex:i];
- result = [[[[resultElement attributeForName:@"start"] stringValue] copy] autorelease];
- [startDate addObject:result];
- }
- }
- NSLog([name objectAtIndex:0]);
- NSLog([location objectAtIndex:0]);
- NSLog([startDate objectAtIndex:0]);
- NSLog([short_desc objectAtIndex:0]);
- return YES;
- }
- //TableView:
- - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
- return 1;
- }
- - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
- return [name count];
- }
- #define ASYNC_IMAGE_TAG 9999
- #define LABEL_TAG_1 8888
- #define LABEL_TAG_2 7777
- - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- static NSString *CellIdentifier = @"Cell";
- NSInteger row = [indexPath row];
- CGRect tRect3 = CGRectMake(0.0f, 0.0f, 420.0f, 60.0f);
- AsyncImageView *asyncImageView = nil;
- UILabel *labelDate = nil;
- UILabel *labelTitle = nil;
- UIImageView *image = nil;
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
- if (cell == nil) {
- cell = [[[UITableViewCell alloc] initWithFrame:tRect3 reuseIdentifier:CellIdentifier] autorelease];
- [[[cell subviews] objectAtIndex:0] setTag:111];
- //Datum-Label:
- [labelDate setTextAlignment:UITextAlignmentLeft];
- CGRect tRect1 = CGRectMake(65.0f, 3.0f, 215.0f, 15.0f);
- labelDate = [[[UILabel alloc] initWithFrame:tRect1] autorelease];
- labelDate.tag = LABEL_TAG_1;
- //Titel-Label:
- [labelTitle setTextAlignment:UITextAlignmentLeft];
- CGRect tRect2 = CGRectMake(65.0f, 15.0f, 215.0f, 40.0f);
- labelTitle = [[[UILabel alloc] initWithFrame:tRect2] autorelease];
- labelTitle.tag = LABEL_TAG_2;
- //UITableViewCellAccessoryDisclosureIndicator
- CGRect tRect4 = CGRectMake(300.0f, 0.0f, 10.0f, 60.0f);
- image = [[[UIImageView alloc] initWithFrame:tRect4] autorelease];
- UIImage *img = [UIImage imageWithContentsOfFile: [[NSBundle mainBundle] pathForResource:@"disclosure" ofType:@"png"]];
- [image setImage:img];
- [cell.contentView addSubview:labelDate];
- [cell.contentView addSubview:labelTitle];
- [cell.contentView addSubview:image];
- } else {
- labelDate = (UILabel *) [cell.contentView viewWithTag:LABEL_TAG_1];
- labelTitle = (UILabel *) [cell.contentView viewWithTag:LABEL_TAG_2];
- }
- UIView *cellView = [cell viewWithTag:111];
- if (row % 2) {
- [cellView setBackgroundColor:[UIColor whiteColor]];
- } else {
- [cellView setBackgroundColor:[UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:1]];
- }
- NSString *date = [short_desc objectAtIndex:0]; //App crashes at this point
- labelDate.text = date;
- labelDate.textColor = [UIColor darkGrayColor];
- [labelDate setFont:[UIFont systemFontOfSize:12.0f]];
- [labelDate setBackgroundColor:[UIColor clearColor]];
- //labelTitle.text = [name objectAtIndex:0];
- labelTitle.lineBreakMode = UILineBreakModeWordWrap;
- labelTitle.numberOfLines = 0;
- labelTitle.adjustsFontSizeToFitWidth = YES;
- [labelTitle setTextAlignment:UITextAlignmentLeft];
- [labelTitle setFont: [UIFont systemFontOfSize:16.0f]];
- [labelTitle setBackgroundColor: [UIColor clearColor]];
- return cell;
- }
- - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
- {
- return 61.0f;
- }
- - (void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath {
- // Navigatoin logic
- int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];
- }
- - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
- // Navigatoin logic
- int storyIndex = [indexPath indexAtPosition: [indexPath length] - 1];
- [tableView deselectRowAtIndexPath:[tableView indexPathForSelectedRow] animated:YES];
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement