Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';我不理解iPhone的视图布局_Iphone_Objective C_Interface Builder - Fatal编程技术网

Can';我不理解iPhone的视图布局

Can';我不理解iPhone的视图布局,iphone,objective-c,interface-builder,Iphone,Objective C,Interface Builder,我有一个iphone应用程序,它是根据一个教程(针对不同的框架,所以我不得不稍微修改一下)构建的,它在同一个视图上使用一个选项卡栏和一个导航栏,该视图还包含一个从SQLite db填充的UITable。 我昨晚构建了它,当您在UITable中选择一个项目时,它将重定向到一个显示我项目详细信息的视图(此时,只有一个城市名称)。我进去试着修改那个DetailView…但我所做的任何修改都不起作用。 因此,我有几个问题: 1) 为什么我的CityDetailView.xib在Interface Bui

我有一个iphone应用程序,它是根据一个教程(针对不同的框架,所以我不得不稍微修改一下)构建的,它在同一个视图上使用一个选项卡栏和一个导航栏,该视图还包含一个从SQLite db填充的UITable。 我昨晚构建了它,当您在UITable中选择一个项目时,它将重定向到一个显示我项目详细信息的视图(此时,只有一个城市名称)。我进去试着修改那个DetailView…但我所做的任何修改都不起作用。 因此,我有几个问题: 1) 为什么我的CityDetailView.xib在Interface Builder中看起来像这样:

但在应用程序运行时看起来是这样的:

我是iPhone开发的新手,所以我甚至不知道从哪里开始寻找这个问题。 我知道TableViewController设置为CitiesTableViewController,在didSelectRowAtIndexPath中的控制器代码中,我运行以下代码:

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
 City *city = (City *)[appDelegate.cities objectAtIndex:indexPath.row];

 // Initialize a new CityDetailView if there isn't one already
 if (self.cityView == nil) {
  CityDetailViewController *viewController = [[CityDetailViewController alloc] initWithNibName:@"CityDetailViewController" bundle:[NSBundle mainBundle]];

  self.cityView = viewController;
  [viewController release];
 }

 [appDelegate.citiesNavController pushViewController:cityView animated:YES];
 self.cityView.city = city;
 self.cityView.title = city.name;
 [self.cityView.cityName setText:city.name];
 [self.cityView.stateName setText:city.state];
 [self.cityView.population setText:city.population];
我在Interface Builder中将标签链接到控制器中的属性。 我还将CityDetailView.xib类标识设置为CityDetailViewController,它正确声明了所有属性。 有一件事我不明白,如果我将CityDetailView.xib重命名为“CityDetailView.xib1”,程序仍然运行相同的程序,但如果我更改[self.cityView.title=city.name];到[self.cityView.title=@“鲍勃是你叔叔!”;它显示程序中的更改

另一个完全不相关的注意事项是,在我的TableView(我的第二个选项卡)的底部有一个奇怪的条,我不知道它是什么,也不知道如何摆脱它,我很确定它与NavigationController有关,但我不知道它为什么会出现,如何出现。就是这个:

有人能就这些问题向我提供一些建议吗?

当您更改源文件时“什么都没发生”时,通常您只做几件事:

  • 某处的日期被搞砸了,你需要清理(建造)→ (清洁)
  • 您正在编辑错误的文件
  • 你建错目标了
  • 不,说真的,你编辑了错误的文件,或者建立了错误的目标

清洁绝对是第一件要尝试的事情。尤其是如果您可以重命名XIB,并且一切仍在愉快地进行。

最简单的解释是,
self.cityView.stateName
和后续标签未连接到interface builder中。控制器必须有一个连接到每个标签的插座,以便填充它。如果向找不到的对象发送消息,Objective-C不会引发错误

清洁工作做得很好,尼克。非常感谢!现在我只需要弄清楚底部的灰色条是什么,以及如何去除它。