好的,我遇到了麻烦。
我使用名为MainView的UITableViewController自定义类启动了一个Application。
在界面构建器中,我修改了视图,以便顶部有一个文本框和一个按钮以及一个UITableView。连接数据源并委托给MainView类,并在所有代码中编程,使用文本字段作为搜索字段,将按钮作为搜索触发器,然后在适当的委托方法中编程以填充UITableView。这非常有效。
现在下一步是使用
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
能够显示带有与所选行相关的链接的webview的方法。所以阅读我看到我需要添加一个UINavigationController到混合(以获得工具栏和导航栏等..)。
现在我试过这个: 从“界面”构建器添加导航控制器,并连接到appdelegate和插座
#import
@interface ComparateurAppDelegate : NSObject {
UIWindow *window;
UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@end
然后在实施中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[window addSubview:navigationController.view];
[window makeKeyAndVisible];
}
这个发布好了,和以前一样,我没有我应该有的顶级栏。加上当我尝试在其中推送新视图时什么都不做。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
WebViewController *wvc = [[WebViewController alloc] initWithNibName:@"WebViewController.nib" bundle:nil];
[self.navigationController pushViewController:wvc animated:YES];
[wvc release];
}
我知道代码正在运行,因为我记录了它。但什么也没发生。 WebViewController.nib是我创建的nib文件(现在为空),因此我用UIwebview填充它。
我此时的猜测是视图层次结构没有设置好。
所以我尝试了一些我记不太清楚的东西,并在我已经拥有的窗口顶部找到了工具栏,但所有内容都无法访问(如果工具栏是模态对话框而我无法使用底部一个,或者像透明视图,你可以看到第一个堆叠的窗口下面。 我也尝试在appDelegate中以编程方式创建UINavigation控制器,如此
[self.navigationController pushViewController:wvc animated:YES];
[wvc release];
}
我得到的只是一个用于界面的空UITableView,而不是MainView.nib(其类被设置为MainView)。
TL; DR: 有一个正在运行的应用程序,想要添加详细视图,并且需要修改为UINavigationController但似乎无法找到正确的方法。
提前感谢,并为长篇文章感到抱歉。
答案 0 :(得分:1)
尝试更改此内容:
UIViewController *rootController = [[MainView alloc]init];
对此:
UIViewController *rootController = [[MainView alloc]initWithNibName:@"MainView" bundle:nil];