Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

GhostDZ9

macrumors regular
Original poster
Sep 13, 2010
118
0
Hey guys,

I was just wondering what is the best way to pass an object between two views and how would I go about doing so?

Regards,

Ghost
 
Code:
//
//  TimerViewController.h

#import <UIKit/UIKit.h>
#import "StaticClass.h"
#import "TimeOptionController.h"



@interface TimerViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
	NSMutableArray  *sections;
	NSDateFormatter *formatter;
	IBOutlet UITableView *tvc;
	NSString *duration1;
}

@property (nonatomic, assign) NSDateFormatter *formatter;
@property (retain) NSMutableArray *sections;
@property (nonatomic, retain) UITableView *tvc;
@property (nonatomic, retain) NSString *duration1;


-(IBAction)startTimeBtnPressed;


@end

Code:
//TimerViewController.m
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
	static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
    }
    
	if(indexPath.section == 0){
		cell.textLabel.text = [sections objectAtIndex:indexPath.row];
		cell.detailTextLabel.text = duration1; 
		cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
	}
	
	return cell;
}


Code:
//TimeOptionController.h

#import <UIKit/UIKit.h>


@interface TimeOptionController : UITableViewController {
	NSArray *rows;
	int selectedRow;
	NSString *duration;

}
@property (retain) NSArray *rows;
@property (nonatomic, retain) NSString *duration;
@property (nonatomic, retain) NSString *duration1;


@end



Code:
//TimeOptionController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
	selectedRow = indexPath.row;
	duration = (NSString *) [rows objectAtIndex:indexPath.row];
	duration1 = duration;
	[self.tableView reloadData];

}


I wanna copy the value of duration from the TimeOptionController to the TimerViewController.


SOMEONE PLEASE HELP ME!
 
Does duration have to be an NSString?

Im quite new to programming and i have only worked out how to pass int's floats's and things like that.

jon
 
Yes it does because the value of it is filling in the DetailedTextLabel.text
 
I have read that article, if you can suggest another way to do what i am trying to do then please do so
 
The issue you are butting heads with is normally solved with something commonly called data persistence. There are a number of ways to code a solution, including singletons, using the app delegate (which is a singleton), NSUserDefaults, or even setting up a property in one class and setting its value in the other instance, among others. As well, there have been a number of threads in this forum that have previously covered this topic. Search for "data persistence" or "sharing values/variables between views".
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.