2010-05-20 51 views
1

我怎麼知道選擇了哪個tableview單元?(在詳細視圖中) 問題是這樣的。 我有一個表視圖控制器。這裏是從互聯網條目解析到表格。 所以這是一個動態tabe視圖,從互聯網加載。我不知道表中有多少條目,所以當我點擊一行時,我不知道要調用哪些細節視圖。 所以我做了一個觀點。該視圖包含一個日曆。在這個日曆上(這是詳細的圖),我將根據選定的行解析來自互聯網的數據。 例如:我有表:條目1,條目2,條目3,條目4 當我單擊條目2時,我需要使用參數條目2調用一個php.PHP將知道我選擇的表上有哪些條目,會生成我將解析的正確的xml。我如何知道詳細視圖中tableview中的單元格被選中?

這裏是我的tableview didSelectRow功能:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    // Navigation logic -- create and push a new view controller 

if(bdvController == nil) 
    bdvController = [[BookDetailViewController alloc] initWithNibName:@"BookDetailView" bundle:[NSBundle mainBundle]]; 
    Villa *aVilla = [appDelegate.villas objectAtIndex:indexPath.row]; 

    [self.navigationController pushViewController:bdvController animated:YES] 

這裏是detailviewcontroller我的自我視圖功能:

-(void)loadView { 

    [super loadView]; 

    [email protected]"Month" 

    UIBarButtonItem *addButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"ListView" style:UIBarButtonItemStyleDone target:self action:@selector(add:)]; 
    self.navigationItem.rightBarButtonItem = addButtonItem; 

    calendarView = [[[KLCalendarView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 373.0f) delegate:self] autorelease]; 
    appDelegate1 = (XMLAppDelegate *)[[UIApplication sharedApplication] delegate]; 

    myTableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 260, 320, 160)style:UITableViewStylePlain]; 
    myTableView.dataSource=self; 
    myTableView.delegate=self; 
    UIView *myHeaderView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, myTableView.frame.size.width,2)]; 
    myHeaderView.backgroundColor=[UIColor grayColor]; 
    [myTableView setTableHeaderView:myHeaderView]; 

    [self.view addSubview:myTableView]; 
    [self.view addSubview:calendarView]; 
    [self.view bringSubviewToFront:myTableView]; 
} 

我認爲,在這裏自我負載我需要做的,如果程序。 。 如果indexPath.row = x解析fisier.php?variabila = title_of_rowx 但問題是我如何知道indexPath變量?

回答

0

您可以設置BookDetailViewController屬性:

BookDetailViewController.h:

@interface BookDetailViewController : UITableViewController { 
    NSIndexPath *selectedIndexPath; 
} 
@property (nonatomic, retain) NSIndexPath *selectedIndexPath; 
@end 

BookDetailViewController.m

@implementation BookDetailViewController 
@synthesize selectedIndexPath; 
- (void)dealloc { 
    [selectedIndexPath release]; 
} 
// ... 
@end 

的tableView:didSelectRowAtIndexPath方法

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    // Navigation logic -- create and push a new view controller 

    if(bdvController == nil) { 
     bdvController = [[BookDetailViewController alloc] initWithNibName:@"BookDetailView" bundle:[NSBundle mainBundle]]; 
    } 
    bdvController.selectedIndexPath = indexPath 
    Villa *aVilla = [appDelegate.villas objectAtIndex:indexPath.row]; 

    [self.navigationController pushViewController:bdvController animated:YES] 
} 

根據你在應用程序中做什麼,使屬性成爲Villa對象而不是NSIndexPath可能更有意義。

相關問題