TTTableView в TTViewController - PullRequest
       6

TTTableView в TTViewController

0 голосов
/ 22 июля 2011

Я использую Three20 для добавления некоторых табличных представлений (TTTableView). У меня есть TTViewController, который добавляет TTTableView в качестве подпредставления, используя:

    _signupTableView = [[TTTableView alloc] initWithFrame:CGRectMake(0, kScrollViewHeight + kSignupLabelHeight, 320, kTableViewHeight) style:UITableViewStyleGrouped];
        [_signupTableView setBackgroundColor:[UIColor clearColor]];

        _signupTableView.delegate = self;
        _signupTableView.dataSource = [TTSectionedDataSource dataSourceWithObjects:
                                                   @"",
                                                   [TTTableTextItem itemWithText:@"Sign Up" URL:@"tt://signupController"],
                                                   nil];
[self.view addSubview:_signupTableView];

И все работает хорошо, ЗА ИСКЛЮЧЕНИЕМ, когда коснитесь ячейки. Ячейка становится синей и остается такой. Навигация никогда не переключается на tt: //signupController.

Может кто-нибудь придумать причину, по которой это не работает ??? Я нашел похожий вопрос SO, описывающий те же симптомы, но их проблема была связана с контроллером перетаскивания для обновления, который я не использую.

Любая помощь будет отличной, я в растерянности.

Ура, Brett

Ответы [ 2 ]

1 голос
/ 10 сентября 2011

Не видя никакого другого кода, похоже, что вы не настроили сопоставления с различными ViewControllers в вашем делегате приложения. Попробуйте добавить в приложение «Делегат»:

TTURLMap* map = navigator.URLMap;
[map from:@"tt://signupController" toViewController: NSClassFromString(@"SignupController")];

Надеюсь, это поможет вам.

0 голосов
/ 13 декабря 2011

Я думаю, это то, что вы хотите-

-(void)didSelectObject:(id)object atIndexPath:(NSIndexPath *)indexPath {

    NSLog(@"%d", indexPath.row);
    int i = indexPath.row;

    TTNavigator *navi = [TTNavigator navigator];
    navi.persistenceMode = TTNavigatorPersistenceModeNone;
    TTURLAction *action =  [[[TTURLAction actionWithURLPath:@"tt://signupController"] applyQuery:[NSDictionary dictionaryWithObject:arr forKey:@"stories"]] applyAnimated:YES];
    [navi openURLAction:action];    
}

но не могли бы вы объяснить, как вы сделали TTTableView внутри TTViewController? Я также попробовал ваш код выше, но он вылетает с несколькими предупреждениями, связанными с TTModel. Вот код, который я сделал -

КОД .H ФАЙЛА-

@interface Social1 : TTViewController <TTTableViewDataSource, TTTableViewDelegate, TTModelDelegate> {

    TTTableView *_tableview;
}
@property(nonatomic, retain)TTTableView *_tableview;
@end

КОД. ФАЙЛА .M ВНУТРИ viewDidLoad

    self._tableview = [[TTTableView alloc]initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, 330) style:UITableViewStyleGrouped];
    self._tableview.delegate = self;
    self._tableview.dataSource =
    [TTListDataSource dataSourceWithObjects:
     [TTTableMessageItem itemWithTitle:@"Facebook" 
                               caption:nil
                                  text:kLoremIpsum timestamp:nil
                              imageURL:local_fb URL:@"tt://socialfb"],
     [TTTableMessageItem itemWithTitle:@"Twitter" caption:nil
                                  text:kLoremIpsum timestamp:nil
                              imageURL:local_tw URL:@"http://www.twitter.com/eset"],
     [TTTableMessageItem itemWithTitle:@"YouTube" caption:nil
                                  text:kLoremIpsum timestamp:nil
                              imageURL:local_yt URL:@"tt://videos"],
     [TTTableMessageItem itemWithTitle:@"LinkedIn" caption:nil
                                  text:kLoremIpsum timestamp:nil
                              imageURL:local_li URL:@"http://m.LinkedIn.com/"],
     nil];
    [self.view addSubview:self._tableview];
}

Требует ли код каких-либо других delegate методов? Пожалуйста, ответьте.

...