使用initWithNibName绝对没有任何改变

时间:2010-11-25 14:51:06

标签: iphone cocoa-touch uiviewcontroller uinavigationcontroller

我正在尝试使用不同的XIB加载视图控制器,但由于某些未知原因,它似乎根本没有加载它。

通常我的代码是这样的:

WorkflowViewController *workflowViewController = [[WorkflowViewController alloc] init];

[self.navigationController pushViewController:workflowViewController
                                     animated:YES];
[workflowViewController release];

现在我想用相同的控制器加载另一个xib,所以我尝试了:

WorkflowViewController *workflowViewController = [[WorkflowViewController alloc] initWithNibName:@"Workflow"
                                                                                          bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:workflowViewController
                                     animated:YES];
[workflowViewController release];

但它绝对没有!没有错误,没有警告,也没有加载xib。只有一个空白界面被推送​​到导航控制器:/

关于它为什么这样做以及如何解决它的任何想法?

谢谢!

  • 汤姆

3 个答案:

答案 0 :(得分:1)

您是否尝试使用nil而不是[NSBundle mainBundle]?

WorkflowViewController *workflowViewController = [[WorkflowViewController alloc] initWithNibName:@"Workflow" bundle:nil];
[self.navigationController pushViewController:workflowViewController
                                 animated:YES];
[workflowViewController release];

答案 1 :(得分:0)

我通过创建另一个控制器和另一个视图来解决问题。然后把所有的东西连在一起。似乎这些观点与控制器结合在一起,没有任何东西可以改变它......

答案 2 :(得分:0)

我遇到了同样的问题,结果我的“WorkFlowViewController”相当于一个空的“loadView”实现,它没有调用super,所以