Basic UITableView – Xcode 4

Når der skal arbejdse med UITableView er det en god idé at vide hvordan det basic fungere inden der tænkes for meget i “hvordan får jeg database indhold puttet ind” , “hvordan retter jeg mine felter” og den slaks det er nået vi alle kender som er udvikler.

Når man først ser en mulighed vil men pluslig gerne vide de 10 andre mulighedere med det samme inden man faktisk forstår grund prencippet i det man laver.

Start med at åbne Xcode 4 og opret et nyt projekt klad dette “TableView” og vær sikker på at “Use Core Data” ikke er klikket af.

Start med at åbne din RootViewController.h fil og få den til at se ud som min.

1
2
3
4
5
6
7
8
@interface RootViewController : UITableViewController {
NSArray *listData;
}
 
@property (nonatomic, retain) IBOutlet NSArray *listData;
 
 
@end

Nu går du ind i din RootViewController.m fil.

indsæt @synthesize listData; efter din @implementation RootViewController linje hvor efter vi skal starte med at lave vores test array som skal bruges sener.

Gå til -(void)viewDidLoad og skriv følge inden i denne funktion

1
2
3
4
5
NSArray *array = [[NSArray alloc] initWithObjects: @"Sleppy", @"Sneezt", @"Bashful", nil];
 
self.listData = array;
 
[array release];

Det vi gør her er at vi definere et array hvor vi efterfulgt putter 3 objeckter i vores array, til sidst knytter vi vores array til vores listData array hvor vi så releaser vores array vi selv har lavet.

Slet nu disse linjer

1
2
3
4
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
 
return 1;
}

Nu skulle du gerne have denne funktion tilbage lige neden under

1
2
3
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
....
}

Gå ind i den og skriv følge

1
return [self.listData count];

Når det er gjort går du til – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { … } funktionen som gerne skal se sådan ud.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
- (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...
NSUInteger row = [indexPath row];
cell.textLabel.text = [listData objectAtIndex:row];
 
return cell;
}

Du skulle genre kun tilføje disse 2 linjer

1
2
3
// Configure the cell...
NSUInteger row = [indexPath row];
cell.textLabel.text = [listData objectAtIndex:row];

for at få det til at fungere, gem dit projekt og prøv at kør programmet, når du tester programmet skal det gerne se ud som dette billede.

One comment

  1. Rene Skov says:

    hvad så hvis man nu gerne vil tilføje et UiTextField og en Knappe, og når man så trykker på knappen tilføjer den teksten fra UiTextField til ens TableView …… har søgt efter hjælp til dette meget længe med syntes ikke at kunne finde hjælpe, selv ikke på Mac udvikler forum …

    Håber i kan hjælpe

Leave a Reply

Your email address will not be published. Required fields are marked *

*