TableView im inneren UIViewController
Bin ich möchte ein tableView innerhalb eines UIViewController, denn ich brauche eine Symbolleiste oben in der Ansicht, und ich HIERFÜR nicht verwenden können, den tableViewController. Habe ich eine tableView-Klasse und setzen Sie das, was ich dachte wäre die benötigten Funktionen drin, aber ich muss fehlt etwas, oder haben etwas falsch irgendwo.
.h
import <UIKit/UIKit.h>
@interface TestTV : UITableView
@property(strong,nonatomic)NSArray *arr;
@end
.m
#import "TestTV.h"
@implementation TestTV
@synthesize arr = _arr;
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
//Return the number of sections.
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
_arr = [[NSArray alloc]initWithObjects:@"HEJ",@"FOO", nil];
return _arr.count;
}
- (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];
}
NSString *cellValue = [_arr objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;
return cell;
}
@end
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wahrscheinlich nicht wollen, um eine Unterklasse
UITableView
. Stattdessen in den Ansicht-controller Unterklasse, erklären Sie Ihre Absicht zur Durchführung der entsprechenden delegate und data-source-Protokoll:Dann in der Umsetzung-Datei Ihres view-Controllers die Methoden implementieren, die Sie haben oben definiert.
Schließlich im Interface Builder (oder programmgesteuert), den
delegate
unddataSource
Filialen in der Tabellenansicht gleich zu seinem superview s-view-controller (in IB, dieses view-Controllers wird File ' s Owner).Können Sie das Daten-array eine Eigenschaft des view-Controllers als gut.
IBAction
s und dietableView:didSelectRowAtIndexPath:
delegate-Methode zu erreichen, was Sie wollen.