2011-08-20 121 views
0

我的問題是如何重新加載表視圖如何將視圖2的值發送到視圖1

我有2個視圖控制器。

在第一個Viewcontroller我有一個tableview。如果我在tableview中選擇任何行,它將轉到第二個viewcontroller。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    NextPageController *nextView = [[NextPageController alloc] initWithNibName:@"NextPageView" bundle:nil]; 
    [self.navigationController presentModalViewController:nextView animated:YES]; 
    [nextView release]; 
} 

在第二視圖控制器我有一個文本框。如果我在文本框中輸入任何值,我需要將該值放入第一個viewcontroller tableview中。

任何人都可以幫助我嗎?

在此先感謝。

回答

4

給NextPageController協議和委託,就像這樣:

@protocol (NextPageControllerDelegate) 
-(void)displayString:(NSString *)inputString; 
@end 

@interface FirstTableViewController : UITableViewController { 
    id<NextPageControllerDelegate> stringDelegate; 
} 

@property (nonatomic, assign) id<NextPageControllerDelegate> stringDelegate; 

,並在.m文件:

@implementation 
@synthesize stringDelegate; 

然後,當你分配NextPageViewController時,插入這個:

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    NextPageController *nextView = [[NextPageController alloc] initWithNibName:@"NextPageView" bundle:nil]; 

    nextView.stringDelegate = self; 

    [self.navigationController presentModalViewController:nextView animated:YES]; 
    [nextView release]; 
} 

當然,你的表視圖控制器必須符合NextPageControllerDelegate協議,並給予

-(void)displayString:(NSString *)inputString; 

後,當你在新思維的落實,並希望有表視圖中顯示該字符串,你可以這樣做:

if(nil != self.stringDelegate) 
    [self.stringDelegate displayString:someString]; 

螞蟻那麼它的完成

+0

感謝它的工作完美 – Thukaram

1

創建全球NSMutableArray
存儲並添加該NSMutableArray中的所有數據。
在一流的-(void) viewwillappear,叫[tablename reloadData];

+0

我需要在第一個視圖控制器或第二個視圖控制器中調用此函數 – Thukaram

+0

您正在顯示錶格的視圖。 –

+0

對不起,這是行不通 – Thukaram

1

使全球字符串,

在secondViewController分配它,當你從secondViewController流行到FirstViewController,viewWillAppear中會調用。

化妝邏輯,它使用全局變量,然後重新裝入表..

+0

可以ü請發送給我的示例代碼 – Thukaram

1

你必須一個全局變量存儲您在第二個視圖中提交的文本的文本。

現在,當你回到以前的頁面,在

- (void) viewWillAppear 
{ 
    [yourDataSourceArray addObject:appDelegate.yourGlobalString]; 
    [yourTableView reloadData]; 
} 

和是確保你的yourDataSourceArrayNSMutableArray

希望它可以幫助你。

1

您可以在第一個視圖中爲NSString創建屬性,並在第二個視圖中爲第一個視圖控制器(UITableViewController?)的實例創建一個屬性。然後,在保存或彈出窗口或任何你在第二個視圖控制器中進行的操作之後,您可以設置NSString的屬性,彈出視圖並在viewWillAppear中重新載入tableView。或者,您可以使用Lewen所述的代表團。

相關問題