iPad/iPhone TableVIew帮助推动新视图
问题描述:
因此,我们最近开始为我们公司开发用于iPad的应用程序。不幸的是,我们这里没有人做过任何iPhone/iPad的开发,所以我们只是在进行一些学习,然后展翅高飞。基本上,我们的问题在我们尝试在点击表格行时将视图推送到屏幕上时发生。我们都不知道为什么它没有这样做,因为代码看起来100%正确。这里是什么didRowSelectedAtIndex:方法是这样的:iPad/iPhone TableVIew帮助推动新视图
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// Navigation logic -- create and push a new view controller
if(pdvController == nil)
pdvController = [[PersonDetailViewController alloc] initWithNibName:@"PersonDetailView" bundle:[NSBundle mainBundle]];
Person *aPerson = [appDelegate.people objectAtIndex:indexPath.row];
pdvController.aPerson = aPerson;
[self.appDelegate.navigationController pushViewController:pdvController animated:YES];
}
,这里是为toolbarSearchViewController头:
#import <UIKit/UIKit.h>
#import "RecentSearchesController.h"
#import "PersonDetailViewController.h"
@class ToolbarSearchAppDelegate, PersonDetailViewController;
@interface ToolbarSearchViewController : UIViewController <UISearchBarDelegate, UIPopoverControllerDelegate, RecentSearchesDelegate> {
ToolbarSearchAppDelegate *appDelegate;
UIToolbar *toolbar;
UISearchBar *searchBar;
UITableView *resultsTable;
PersonDetailViewController *pdvController;
RecentSearchesController *recentSearchesController;
UITableViewController *resultsTableController;
UIPopoverController *recentSearchesPopoverController;
}
@property (nonatomic, retain) IBOutlet UIToolbar *toolbar;
@property (nonatomic, retain) UISearchBar *searchBar;
@property (nonatomic, retain) IBOutlet UITableView *resultsTable;
@property (nonatomic, retain) ToolbarSearchAppDelegate *appDelegate;
@property (nonatomic, retain) PersonDetailViewController *pdvController;
@property (nonatomic, retain) UITableViewController *resultsTableController;
@property (nonatomic, retain) RecentSearchesController *recentSearchesController;
@property (nonatomic, retain) UIPopoverController *recentSearchesPopoverController;
@end
和ToolbarSearchAppDelegate标题:
#import <UIKit/UIKit.h>
@class ToolbarSearchViewController;
@interface ToolbarSearchAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
ToolbarSearchViewController *viewController;
UINavigationController *navigationController;
NSMutableArray *people;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet ToolbarSearchViewController *viewController;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@property (nonatomic, retain) NSMutableArray *people;
@end
终于personDetailController。 h:
#import <UIKit/UIKit.h>
@class Person;
@interface PersonDetailViewController : UIViewController {
IBOutlet UITableView *tableView;
Person *aPerson;
}
@property (nonatomic, retain) Person *aPerson;
@property (nonatomic, retain) UITableView *tableView;
@end
我们变得非常恼火,因为我们都不知道为什么它没有加载,任何帮助或洞察你们可以提供的将是惊人的。我不确定你需要看什么,所以如果你需要更具体的东西,让我知道,我会发布它。谢谢!
ps。我不确定代码标签是如何处理所有Obj-c的古怪语法的,所以如果你看到语法错误,就忽略它们。假设语法正确,并编译和运行...
答
这行看起来有点奇怪:
[self.appDelegate.navigationController pushViewController:pdvController animated:YES];
试图使它
[self.navigationController pushViewController:pdvController animated:YES];
编辑相加运行时,问题是你没有导航控制器,所以你不能像这样推视图控制器。你可以做的,是推视图控制器模态,使用
[self presentModalViewController:pdvController animated:YES];
呀,这条线就是我们最初有。我忘了我们把它改成了另一条线,试图尝试一些不同的东西。将它改回这条线没有任何区别。我现在要尝试将打印报表全部整理出来,看看我是否能够弄清楚发生了什么...... – gabaum10 2010-08-04 14:20:31
在另一个说明中,我已经在调试器中经历了一百万遍,并且它实际上已经到达这些行并执行它们,它只是没有做任何事情。这让我觉得导航控制器没有正确连接到正确的插座,但我不确定它应该在哪里。 – gabaum10 2010-08-04 14:23:41
如果您从未手动设置'self.appDelegate',则它将为零,并且调试器将愉快地执行'[nil.navigationController ...]'这是一个NOOP。 'NSLog(@“navcnt:%x”,self.navigationController);'查看你发送消息的地方。 – mvds 2010-08-04 14:36:19