- Registriert
- 30.08.10
- Beiträge
- 13
Hallo zusammen
Ich wäre super froh, wenn Jemand bei meinem Problem behilflich sein könnte. Ich habe einen TableViewController (BooksTableViewController) erstellt. In diesem Controller befinden sich fünf Elemente in der Tabelle. Beim Klicken auf ein Element gelangt man zur Detail-Ansicht dieses Elementes ==> BookDetailViewController, welcher ein normaler ViewController ist. Nun habe ich in BooksTableViewController eine Instanzvariable deklariert. Folgende der Auszug von meinem BooksTableViewController.h File (Nur der String rowName ist hier meine Anliegen):
Im BooksTableViewController.m File habe ich dann Folgende Zeilen geschrieben:
Die NSLog Zeile schreibt mir nun erfolgreich den Inhalt der ausgewählten Zelle ins Terminal bzw. der Inhalt der Zelle wird erfolgreich in meine Instanzvariable rowName dieser Klasse gespeichert.
Nun möchte ich ein Objekt dieser Klasse in BookDetailViewController erzeugen. Folgend der Auszug aus dem BookDetailViewController.h File:
Zu Aller Letzt noch der Auszug aus der loadView-Methode vom BookDetailViewController.m File:
Und hier ist mein Problem. Im Terminal sollte doch nun von der NSLog-Zeile aus der Inhalt der angetippten Zelle stehen, wie es bereits in der Klasse BooksTableViewController der Fall war?! Leider steht dort jedoch 8 mal untereinander "2010-09-13 17:14:33.476 ORBooks[948:207] 0"
Vielleicht ist mein Problem trivial und man muss nur irgendwie die Instanzvariable eine Art global / public setzen, wie es bei Java auch der Fall ist, oder ich habe einfach einen dumme Fehler übersehen. Ich entschuldige mich für die vielen Code-Schnipsel, welche ich hier gepostet habe, hoffe jedoch, dass mir Jemand weiterhelfen kann.
Vielen Dank im Voraus
Gruss aus der Schweiz
reeng
Ich wäre super froh, wenn Jemand bei meinem Problem behilflich sein könnte. Ich habe einen TableViewController (BooksTableViewController) erstellt. In diesem Controller befinden sich fünf Elemente in der Tabelle. Beim Klicken auf ein Element gelangt man zur Detail-Ansicht dieses Elementes ==> BookDetailViewController, welcher ein normaler ViewController ist. Nun habe ich in BooksTableViewController eine Instanzvariable deklariert. Folgende der Auszug von meinem BooksTableViewController.h File (Nur der String rowName ist hier meine Anliegen):
Code:
#import <UIKit/UIKit.h>
@class BookDetailViewController;
@interface BooksTableViewController : UITableViewController <UITableViewDelegate, UITableViewDataSource> {
IBOutlet UITableView * booksTableView;
NSMutableArray *booksArray;
BookDetailViewController *bookDetailViewController;
NSString *rowName;
}
@property (nonatomic, retain) NSMutableArray *booksArray;
@property (nonatomic, retain) BookDetailViewController *bookDetailViewController;
@property (readwrite) NSString *rowName;
@end
Im BooksTableViewController.m File habe ich dann Folgende Zeilen geschrieben:
Code:
self.rowName = [NSString stringWithFormat:@"%@",[booksArray objectAtIndex:row]];
NSLog([NSString stringWithFormat:@"%@",self.rowName]);
Nun möchte ich ein Objekt dieser Klasse in BookDetailViewController erzeugen. Folgend der Auszug aus dem BookDetailViewController.h File:
Code:
#import <UIKit/UIKit.h>
#import "BooksTableViewController.h"
@interface BookDetailViewController : UIViewController {
BooksTableViewController *booksTableViewController;
}
@property (nonatomic, retain) BooksTableViewController *booksTableViewController;
-(void) loadView;
@end
Zu Aller Letzt noch der Auszug aus der loadView-Methode vom BookDetailViewController.m File:
Code:
-(void)loadView{ //Manuell ergänzt;
BooksTableViewController *booksTableViewController = [[BooksTableViewController alloc] init];
NSLog(@"%d",booksTableViewController.rowName);
}
Und hier ist mein Problem. Im Terminal sollte doch nun von der NSLog-Zeile aus der Inhalt der angetippten Zelle stehen, wie es bereits in der Klasse BooksTableViewController der Fall war?! Leider steht dort jedoch 8 mal untereinander "2010-09-13 17:14:33.476 ORBooks[948:207] 0"
Vielleicht ist mein Problem trivial und man muss nur irgendwie die Instanzvariable eine Art global / public setzen, wie es bei Java auch der Fall ist, oder ich habe einfach einen dumme Fehler übersehen. Ich entschuldige mich für die vielen Code-Schnipsel, welche ich hier gepostet habe, hoffe jedoch, dass mir Jemand weiterhelfen kann.
Vielen Dank im Voraus
Gruss aus der Schweiz
reeng