UITableView als eine Untersicht?
Ist das möglich? Ich möchte nur eine kleine Tabelle in meiner aktuellen Ansicht... hier ist, was ich versuche zu tun:
.h-Datei
#import <UIKit/UIKit.h>
@interface IngredientsRootView : UIViewController <UITableViewDelegate, UITableViewDataSource> {
UITableView *ingredientsTable;
}
@property (nonatomic, retain) UITableView *ingredientsTable;
@end
.m-Datei habe ich delegieren und Datenquellen-Methoden und-code:
ingredientsTable = [[UITableView alloc] initWithFrame:CGRectMake(10, 10, 300, 300) style:UITableViewStylePlain];
[ingredientsTable setDelegate:self];
[ingredientsTable setDataSource:self];
[self.view addSubview:ingredientsTable];
Die app stürzt nicht ab, aber es zeigt nicht an einen Tisch. Im moment habe ich einfach alles ein, was definitiv als pro:
#pragma mark -
#pragma mark Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
//Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
//Return the number of rows in the section.
return 10;
}
//the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
//Configure the cell...
cell.textLabel.text = @"Hello";
return cell;
}
Was mache ich falsch? Dank
- Ich denke, es hängt davon ab, wo Sie initialisieren der tableView, sind Sie in der
initWithNib:
Methode des Controllers? - oh, tut mir Leid.... keine viewDidLoad 🙂
- link Versuch es als IBOutlet im Interface Builder, und lassen Sie die Initialisierung zu ihm, nur halten Sie die Stellvertretung/datasource-Teil
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie anrufen
-reloadData
auf die Tabelle wird nach dem hinzufügen als Untersicht.Auch, wie die Ansicht eingestellt? Ist es in einer XIB-oder über
-loadView
?-loadView
? Wenn Sie nicht mit XIBs und Sie noch nicht umgesetzt-loadView
oder in anderer Weise setzen Sie den view-controller ist der Ansicht, die anderswo dannself.view
zurückkehren wird null, wenn Sie versuchen, und fügen Sie die Tabelle als eine Untersicht, und nichts wird passieren.viewDidLoad
wird nur aufgerufen, nachloadView
oder wenn die Sicht eingestellt wurde anderweitig erstellt oder IB. Legen Sie einen Haltepunkt inviewDidLoad
um zu überprüfen, dass es aufgerufen wird.viewDidLoad
wird nicht aufgerufen werden, da keine view geladen wird, und somit Ihre Tabelle anzuzeigen, ist nicht immer Hinzugefügt als Untersicht. (sorry für Doppel-comment, lief aus dem Raum in der letzten)Haben Sie Erinnerung hinzufügen, um die
[window addSubview:[IngredientsRootView view]];
zu Ihrer app zu delegieren ?Und durch die Art und Weise, anstatt erbt von UIViewController können Sie nur Erben von UITableViewController und erhalten Sie alle diese Funktionen für Sie mit keinen zusätzlichen code.
UITableViewController
übernimmt seineview
Eigenschaft ist eigentlich eineUITableView
, das es eine unangemessene Klasse von der geerbt wird, wenn Ihre Ansicht ist etwas anderes (z.B. eineUIView
"container")