I'm creating an Universal App that uses a UISplitView inside an UITabBar. Everything is working fine (TabBar navigation, PopOver, SplitView showing up in both portrait and landscape,...) except that when I select an item from the Root SplitView (that is a UITableViewController) the Details view of the SplitView won't change... and even more strange, only the interface controls won't update - all the variables and methods are correctly called and used.
Here's my code:
Code block from AppDelegate.h:
@interface DicionarioAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
UITabBarController *tabBarController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
Code block from AppDelegate.m (if iPad):
iPadRootController* rootVC = [[[iPadRootController alloc] initWithNibName:@"iPadSearch" bundle:nil] autorelease];
iPadDetailsController* detailsVC = [[[iPadDetailsController alloc] initWithNibName:@"iPadDetails" bundle:nil] autorelease];
UISplitViewController* splitViewController = [[UISplitViewController alloc] init];
splitViewController.viewControllers = [NSArray arrayWithObjects:rootVC, detailsVC, nil];
splitViewController.delegate = detailsVC;
splitViewController.tabBarItem = [[UITabBarItem alloc] initWithTitle:@"Search"
image:[UIImage imageNamed:@"search.png"]
tag:0];
// Add them as children of the tab bar controller
tabBarController.viewControllers = [NSArray arrayWithObjects:
splitViewController,
secondController,
thirdController,
nil];
[splitViewController release];
Code block from iPadRootViewController.h:
@property (nonatomic, retain) iPadDetailsController *detailsController;
Code block from iPadRootViewController.m (when items gets selected):
iPadDetailsController *newDetailViewController = [[iPadDetailsController alloc] initWithNibName:@"iPadDetails" bundle:nil];
self.detailsController = newDetailViewController;
self.detailsController.detailItem = id;
Code block from iPadDetailViewController.h:
@property (nonatomic, retain) IBOutlet UILabel *someLabel;
And in iPadDetailsViewController.m, I can assign detailItem value to a variable (and all methods are working) but anything that's interface related stays null. Code block:
if (detailItem != newDetailItem) {
[detailItem release];
detailItem = [newDetailItem retain];
self.word = [detailItem description];
self.someLabel.text = [detailItem description];
//Update the view
...
}
In this case, self.word gets the correct value but self.someLabel text property won't (stays null). I'm new to iPhone/iPad programming but I believe I'm linking all outlets correctly.
Please help me... I'm going nuts on this. Any ideas appreciated!
I'm using XCode 4. Thanks!