我在主视图中有信息,它使用 UITableView 对象和在我向其推送用户选择后出现的详细 ViewContrailer。
我的挑战是在 UITextView 对象中滚动,它不会回到详细视图上滚动区域的顶部。
用户从主视图控制器的列表中选择一个细节对象,然后在细节视图控制器中显示它。然后,她在该视图上的 UITextView 对象 - dogScrollingInfoTextView- 内滚动,向下滚动以使上面的行不再显示。然后她返回到主视图控制器,并选择不同的行。返回详细视图后,新对象的 UITextView 对象 (dogScrollingInfoTextView) 仍位于前一个视图离开它的位置。
在 detailViewController 中传递给这个 UITextView 的对象,在 Master View Controller 中看起来像这样
self.detailViewController.dogScrollingInfo = dog.whatMakesDogSpecial;
在原始的类定义中,这个属性是这样声明的
@property(强,非原子)NSString *whatMakesDogSpecial;
用于在 detailView 控制器类中传输到视图的对象声明如下
@property (strong, nonatomic) NSString *dogScrollingInfo;
@property (weak, nonatomic) IBOutlet UITextView *dogScrollingInfoTextView;
在 detailViewController 实现中,传输看起来像这样
self.dogScrollingInfoTextView.text = [self.dogScrollingInfo description];
我不确定是否应该附上屏幕截图?我应该输入任何其他代码吗?(我在下面放了两种方法,一种来自每个视图控制器类)
我找不到与 UITextView 类或 UIView 类中的滚动特别相关的任何内容,这告诉我必须以编程方式做一些事情。这似乎与InterfaceBuilder有关。我正在使用 xib 的 NOT 故事板。但是我在不同的 Inspectors 中找不到任何改变这种行为的选择。
我在详细视图控制器类中使用的 configureView 是否可能不是正确的方法?我想我在 Xcode Master-Detail 项目模板中找到了一个使用 configureView 方法的示例,尽管我是从 Single View 项目模板构建我的应用程序的。如果没有,我将如何确定使用什么方法?
我正在尝试学习使用苹果文档来解决这样的挑战,但我发现很难驾驭它。因此,非常感谢有关如何更好地使用文档的指针。
....来自主视图控制器类的代码片段...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!self.detailViewController) {
self.detailViewController = [[HardlyWorkingDogsDetailViewController alloc]
initWithNibName:@"HardlyWorkingDogsDetailViewController"
bundle:nil ];
}
NSLog(@"The user selected dog @array position %d", indexPath.row);
Dog *dog = self.sortedDogDictionaryArray[indexPath.row];
self.detailViewController.dogName= dog.dogName;
self.detailViewController.dogLicense = dog.licenseString;
self.detailViewController.dogScrollingInfo = dog.whatMakesDogSpecial;
self.detailViewController.dogPhoto = dog.dogPhoto;
[self.navigationController pushViewController:self.detailViewController animated:YES];
}
.... Detail View Controller 类中的代码片段...
-(void)configureView {
//NSLog(@"ConfigureView # 1 in detail vu");
if (self.dogLicense) {
self.dogLicenseUILabel.text = [self.dogLicense description];
self.dogNameUIText.text = [self.dogName description];
self.dogScrollingInfoTextView.text = [self.dogScrollingInfo description];
self.dogPhotoUIImage.image = self.dogPhoto;
}
}
谢谢劳雷尔