为什么我的TTTableViewController没有出现

时间:2010-04-08 16:05:19

标签: iphone three20

我有一个应用程序,其中包含一个带有两个子视图的滚动视图(在它们之间向左和向右滚动)

两个视图都正确显示,并且视图之间的滚动工作正常。现在我想将第一个视图更改为TTTableView(由Three20提供),但是当我使用TTCatalog应用程序中的“TableControlsTestController”类时,我看到的是一个空的tableView

请注意,此类包含显示6个单元格的所有数据

要添加新的TTTableView,请使用以下

 [scrollView addSubview:detailView.view];

其中detailView是TableControlsTestController的实例

为了尝试缩小问题所在,我也试着调用

[self presentModalViewController:detailView animated:YES];

这正确显示了6个单元格的表格视图。

为什么当我尝试将视图添加到scrollView时,这不能像我期望的那样工作?


如果您无权访问TTCatalog

,请参考
#import "TableControlsTestController.h"

///////////////////////////////////////////////////////////////////////////////////////////////////

@implementation TableControlsTestController

///////////////////////////////////////////////////////////////////////////////////////////////////
// NSObject

- (id)init {
  if (self = [super init]) {
    self.tableViewStyle = UITableViewStyleGrouped;
    self.autoresizesForKeyboard = YES;
    self.variableHeightRows = YES;

    UITextField* textField = [[[UITextField alloc] init] autorelease];
    textField.placeholder = @"UITextField";
    textField.font = TTSTYLEVAR(font);

    UITextField* textField2 = [[[UITextField alloc] init] autorelease];
    textField2.font = TTSTYLEVAR(font);
    textField2.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    TTTableControlItem* textFieldItem = [TTTableControlItem itemWithCaption:@"TTTableControlItem"
                                                            control:textField2];

    UITextView* textView = [[[UITextView alloc] init] autorelease];
    textView.text = @"UITextView";
    textView.font = TTSTYLEVAR(font);

    TTTextEditor* editor = [[[TTTextEditor alloc] init] autorelease];
    editor.font = TTSTYLEVAR(font);
    editor.backgroundColor = TTSTYLEVAR(backgroundColor);
    editor.autoresizesToText = NO;
    editor.minNumberOfLines = 3;
    editor.placeholder = @"TTTextEditor";

    UISwitch* switchy = [[[UISwitch alloc] init] autorelease];
    TTTableControlItem* switchItem = [TTTableControlItem itemWithCaption:@"UISwitch" control:switchy];

    UISlider* slider = [[[UISlider alloc] init] autorelease];
    TTTableControlItem* sliderItem = [TTTableControlItem itemWithCaption:@"UISlider" control:slider];

    self.dataSource = [TTListDataSource dataSourceWithObjects:
      textField,
      editor,
      textView,
      textFieldItem,
      switchItem,
      sliderItem,
      nil];
  }
  return self;
}

@end

1 个答案:

答案 0 :(得分:2)

事实证明,有些事件没有通过scrollView传播,因此没有在TTTableViewController中处理。要解决这个问题,我必须在我的scrollView

中执行以下操作
- (void)viewWillAppear:(BOOL)animated {
  [super viewWillAppear:animated];
  [myNewTTViewController viewWillAppear:NO];
}


- (void)viewDidAppear:(BOOL)animated {
  [super viewDidAppear:animated];
  [myNewTTViewController viewDidAppear:NO];
}

- (void)viewWillDisappear:(BOOL)animated {
  [super viewWillDisappear:animated];
  [myNewTTViewController viewWillDisappear:NO];
}

- (void)viewDidDisappear:(BOOL)animated {
  [super viewDidDisappear:animated];
  [myNewTTViewController viewDidDisappear:NO];
}

一旦我这样做,表就会突然变成生活