以编程方式创建的ViewController在Storyboard上看起来不像

时间:2014-07-27 23:12:33

标签: ios objective-c uiviewcontroller storyboard programmatically-created

我在StoryBoard中配置了一个单独的TableViewController。我决定,最好以编程方式连接它,而不是使用segue,所以,我使用这段代码来呈现我的ViewController:

UIStoryboard *aStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
NewProjectViewController *newProject = [aStoryboard instantiateViewControllerWithIdentifier:@"NewProjectViewController"];
newProject.delegate = self;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:newProject];
[self presentViewController:navController animated:YES completion:nil];  

但是显示的ViewController是简单的TableViewController,但我在Storyboard中做了一些布局。好像是一个bug。我将截图附加到帖子来说明问题。
 How it really is How it has to be

解决:
问题在于这两种方法,它们超越了StoryBoard设计:

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 0;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
#warning Incomplete method implementation.
    // Return the number of rows in the section.
    return 0;
}

它们未被注释,但UITableViewController中的其他方法被注释掉了。可能之后,我将不得不对所有UI进行编程,因为这个解决方案我只想进行原型设计。 Thanx MaKo的帮助!

1 个答案:

答案 0 :(得分:1)

您是否已将界面构建器上表格的插座连接到您的viewcontroller类?

另外,您是否在NIB上连接了表的数据源和委托?

即使您以编程方式调用nib并在界面构建器上设置样式,您仍然需要将插座连接到您的类

你有定制细胞吗?连接它们,

很好的