Implementation of Nib project to Storyboard, Xcode

Posted by Blake Loizides on Stack Overflow See other posts from Stack Overflow or by Blake Loizides
Published on 2012-09-15T18:46:40Z Indexed on 2012/09/16 15:38 UTC
Read the original article Hit count: 334

Filed under:
|
|
|
|

I have made a tabbed bar application in storyboard in xcode. I,m new to xcode.

I got a Sample TableView XIB project from apple that I edited to my needs,The project has a UITableView that I Customized with Images, And with help of a certain forum member I was able to link up each image to a New View Controller.

I tried to port or integrate My Nib Project Code to my StoryBoard Tabbed Bar Application.I thought I had everything right had to comment out a few things to get no errors, But the project only goes to a Blank Table View.

Below are 2 links, 1 to my StoryBoard Tabbed Bar Application with the Table Code that I tried to integrate and the other My Successful Nib Project.

Also is some code and pictures. If anybody has some free time and does not mind to help I would be extremely grateful for any input given.

link1 - Storyboard

link2 - XIB

enter image description here

enter image description here

enter image description here

DecorsViewController_iPhone.m

//
//  TableViewsViewController.m
//  TableViews
//
//  Created by Axit Patel on 9/2/10.
//  Copyright Bayside High School 2010. All rights reserved.
//

#import "DecorsViewController_iPhone.h"
#import "SelectedCellViewController.h"

@implementation DecorsViewController_iPhone

#pragma mark - Synthesizers

@synthesize sitesArray;
@synthesize imagesArray;

#pragma mark - View lifecycle

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {

// Load up the sitesArray with a dummy array : sites
NSArray *sites = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", @"d", @"e", @"f", @"g", @"h", nil];
self.sitesArray = sites;
//[sites release];

UIImage *PlumTree = [UIImage imageNamed:@"a.png"];
UIImage *CherryRoyale = [UIImage imageNamed:@"b.png"];
UIImage *MozambiqueWenge = [UIImage imageNamed:@"c.png"];
UIImage *RoyaleMahogany = [UIImage imageNamed:@"d.png"];
UIImage *Laricina = [UIImage imageNamed:@"e.png"];
UIImage *BurntOak = [UIImage imageNamed:@"f.png"];
UIImage *AutrianOak = [UIImage  imageNamed:@"g.png"];
UIImage *SilverAcacia = [UIImage imageNamed:@"h.png"];

NSArray *images = [[NSArray alloc] initWithObjects: PlumTree, CherryRoyale, MozambiqueWenge, RoyaleMahogany, Laricina, BurntOak, AutrianOak, SilverAcacia, nil];
self.imagesArray = images;
//[images release];

[super viewDidLoad];
}


#pragma mark - Table View datasource methods

// Required Methods

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

// Returns cell to render for each row
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CellIdentifier";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];


 // Configure cell

    NSUInteger row = [indexPath row];

    // Sets the text for the cell
    //cell.textLabel.text = [sitesArray objectAtIndex:row];

    // Sets the imageview for the cell
cell.imageView.image = [imagesArray objectAtIndex:row];

    // Sets the accessory for the cell
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;

   // Sets the detailtext for the cell (subtitle)
   //cell.detailTextLabel.text = [NSString stringWithFormat:@"This is row: %i", row + 1];

  return cell;
}

// Optional

// Returns the number of section in a table view
-(NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}

#pragma mark -
#pragma mark Table View delegate methods

// Return the height for each cell
-(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 78;
}

  // Sets the title for header in the tableview
-(NSString *) tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return @"Decors";
}

  // Sets the title for footer
-(NSString *) tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {
return @"Decors";
}

 // Sets the indentation for rows
-(NSInteger) tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath {
return 0;
 }


// Method that gets called from the "Done" button (From the @selector in the line - [viewControllerToShow.navigationItem setRightBarButtonItem:[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissView)] autorelease]];)
- (void)dismissView {
[self dismissViewControllerAnimated:YES completion:NULL];
}

// This method is run when the user taps the row in the tableview
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];

 SelectedCellViewController *viewControllerToShow = [[SelectedCellViewController alloc] initWithNibName:@"SelectedCellViewController" bundle:[NSBundle mainBundle]];
[viewControllerToShow setLabelText:[NSString stringWithFormat:@"You selected cell: %d - %@", indexPath.row, [sitesArray objectAtIndex:indexPath.row]]];
[viewControllerToShow setImage:(UIImage *)[imagesArray objectAtIndex:indexPath.row]];

[viewControllerToShow setModalPresentationStyle:UIModalPresentationFormSheet];
[viewControllerToShow setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
[viewControllerToShow.navigationItem setRightBarButtonItem:[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissView)]];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewControllerToShow];
viewControllerToShow = nil;

[self presentViewController:navController animated:YES completion:NULL];
 navController = nil;

//  UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Tapped row!"
//                                            message:[NSString stringWithFormat:@"You tapped: %@", [sitesArray objectAtIndex:indexPath.row]]
  //                                              delegate:nil 
  //                                              cancelButtonTitle:@"Yes, I did!" 
  //                                              otherButtonTitles:nil];
  //    [alert show];
  //    [alert release];

  }

 #pragma mark - Memory management

- (void)didReceiveMemoryWarning {
NSLog(@"Memory Warning!");
[super didReceiveMemoryWarning];
}

- (void)viewDidUnload {
self.sitesArray = nil;
self.imagesArray = nil;
[super viewDidUnload];
}


 //- (void)dealloc {
//[sitesArray release];
//[imagesArray release];
 //   [super dealloc];
//}

//@end

//- (void)viewDidUnload
//{
 //   [super viewDidUnload];
// Release any retained subviews of the main view.
//}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
} else {
    return YES;
}
}

@end

DecorsViewController_iPhone.h

   #import <UIKit/UIKit.h>

   @interface DecorsViewController_iPhone : UIViewController <UITableViewDelegate, UITableViewDataSource> {
NSArray *sitesArray;
NSArray *imagesArray;

 }

 @property (nonatomic, retain) NSArray *sitesArray;
 @property (nonatomic, retain) NSArray *imagesArray;

 @end

SelectedCellViewController.m

  #import "SelectedCellViewController.h"

 @implementation SelectedCellViewController

 @synthesize labelText;
 @synthesize image;

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if ((self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])) {
  }
  return self;
   }

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

  #pragma mark - View lifecycle

 - (void)viewDidLoad {
[super viewDidLoad];
[label setText:self.labelText];
  [imageView setImage:self.image];
 }

  - (void)viewDidUnload {
    self.labelText = nil;
    self.image = nil;
   // [label release];
   // [imageView release];
  [super viewDidUnload];
  }

  - (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end

SelectedCellViewController.h

@interface SelectedCellViewController : UIViewController {
NSString *labelText;
UIImage *image;

IBOutlet UILabel *label;
IBOutlet UIImageView *imageView;
}

@property (nonatomic, copy) NSString *labelText;
@property (nonatomic, retain) UIImage *image;

@end

© Stack Overflow or respective owner

Related posts about iphone

Related posts about ios