PDA

View Full Version : UITableViewController not receiving events




Tiiba
Jul 9, 2010, 10:56 AM
I am still new to the iPhone SDK, and I find it pretty confusing. I have, until now, only used managed languages like Java, C#, VB.NET, and some Python.

Here's code that adds a table to the screen. The table shows up on the screen, but its contents do not. The methods that should fill them in are never entered.


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

// Override point for customization after app launch.
NSLog(@"1");
tv = [[UITableView alloc] initWithFrame:CGRectMake(20, 20, 500, 500) style:UITableViewStylePlain];
tableController = [[*descendent of UITableViewController* alloc] init];
tv.delegate = tableController;
//tv.backgroundColor = [UIColor greenColor];

[window addSubview:tv];
[window makeKeyAndVisible];
NSLog(@"2");

return YES;
}


Here's one of the methods that refuses to be called in the delegate:


- (void)viewDidLoad
{
[super viewDidLoad];

// Configure the table view.
self.tableView.rowHeight = 73.0;
self.tableView.backgroundColor = DARK_BACKGROUND;
}


Entry point:


#import <UIKit/UIKit.h>

int main(int argc, char *argv[]) {

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"*Implementor of UIApplicationDelegate*");
[pool release];
return retVal;
}



PhoneyDeveloper
Jul 9, 2010, 11:44 AM
Don't do it like that. UITableViewController makes its own table. Don't try to associate a view controller with a view like this. If possible try not to add views directly to a window. (I know that it has to be done once at the start of an app.)

Start with the NavBar app from template. It shows how to do this and it works. If you don't want to see a navbar then make it hidden. You will save yourself a lot of grief if you use a navbar controller.

forum user
Jul 10, 2010, 07:27 AM
And set self.tableView.rowHeight = 73.0;
as a return value in
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

That's part of the UITableViewController.