我有一个
UIViewController-> UINavigationBar + UITableView
再解释一下
我是通过UIBuilder实现的。
1:使用XIB文件创建了新的UIViewController
2:使用UIBuiler
我添加UINavigationController
3:然后我将UITableView
放在navigationBar
下面
所以它给了我..
答:UIViewController-> UINavigationBar + UITableView
现在我正在从Web服务加载UITableView中的数据,该工作正常。
我再次使用sam配置创建了一个xib,这是
B:UIViewController-> UINavigationBar + UITableView
所以现在当我尝试使用下面的代码在视图A上推视图B时...它根本不会工作...
SelectSiteViewController *siteViewController = [[SelectSiteViewController alloc] initWithNibName:@"SelectSiteViewController" bundle:nil];
[self.navigationController pushViewController:siteViewController animated:YES];
当我查看UINavigationController *nav = self.navigation
nav是0x0,我假设是NIL。
有谁能告诉我这里有什么不对的..为什么它没有......我怎么能让它发挥作用..
非常感谢....我真的很感激任何帮助
答案 0 :(得分:3)
在UIBuilder中验证文件所有者是否引用了UINavigationController。
答案 1 :(得分:2)
知道了。
我稍微改变了架构。
我用它的xib创建了一个New UIViewController类。并编码新的UINavigationController。
- (void)viewDidLoad {
[super viewDidLoad];
UINavigationController *navigationController
navigationController = [[UINavigationController alloc] init];
[self.view addSubview:navigationController.view];
switch (whichViewController) {
case 1:
viewController = [[xxxx alloc] init];
break;
case 2:
viewController = [[xxx1 alloc] init];
break;
default:
break;
}
[navigationController pushViewController:viewController animated:NO];
[viewController release];
}
并在Switch Statement中推送视图....
我希望这有道理......
谢谢jamihash
答案 2 :(得分:1)
所以你要将tableview添加到导航控制器吗?这是如何:
tableView = [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
navigationController = [[UINavigationController alloc] init];
[navigationController pushViewController:tableView animated:NO];
将tableview作为根视图添加到导航控制器。如果你想推动另一个viewcontroller使用
然后选择一行self.navigationController pushViewController: newViewController animated:YES];
注意:它的UITableViewController * tableView和UINavigationController * navigationController通过声明。因此,为您的表格编码。
答案 3 :(得分:0)
为什么UIViewController-> UINavigationBar + UITableView?
我建议你采用另一种方法 - > UITableViewController A - >嵌入了导航控制器,然后在填充tableview后可以传递数据 - > UITableViewController B by [[self storyboard] instantiateViewControllerWithIdentifier:@“ControllerB”];
然后,在故事板中,删除一个tableView B并在Identity-> storyboard Id中添加一些id。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *sUrl= @"<#string#>";
if (indexPath.row == 0) sUrl= @"http://www.apple.com/";
if (indexPath.row == 1) sUrl= @"http://www.google.com/";
if (indexPath.row == 2) sUrl= @"http://www.times.uk/";
NSMutableArray *selectedObject = [arrayOpenMale objectAtIndex:0];
NSLog(@"%@ is the selected object.",selectedObject);
SeriesAdetailVC *dvc = [[self storyboard]instantiateViewControllerWithIdentifier:@"DetailView"];
dvc.strings7 = [NSURL URLWithString:sUrl];
[self.navigationController pushViewController:dvc animated:YES];
}
希望帮助