2011-12-15 67 views
1

我想做一個示例應用程序,其中在視圖中,我有兩個按鈕,一個是COUNTRY,另一個是STATE。 當我點擊一個國家按鈕國家名單應該出現在一個像彈出窗口的tableview類,當我點擊狀態按鈕狀態列表應該出現在像彈出窗口的tableview,那麼我怎麼能做到這一點,請建議與示例代碼。使用一個TableViewController類創建一個兩個tableview列表

注:我應該只使用一個TableViewcontroller類爲國家和州數據列表。

+0

不鼓勵彈出窗口。最好的方法是使用帶有兩個部分的pickerview,其中一個具有所有國家,另一個具有州。 – utsabiem

回答

2

這裏是代碼:

RootViewController.h

@interface RootViewController : UIViewController { 

UIButton *btnCountry; 
UIButton *btnState; 

NSMutableArray *tempArray; 
NSMutableArray *countryArray; 
NSMutableArray *stateArray; 

IBOutlet UITableView *tempTable; 
} 

@property (nonatomic,retain) UIButton *btnCountry; 
@property (nonatomic,retain) UIButton *btnState; 
@property (nonatomic,retain) NSMutableArray *countryArray; 
@property (nonatomic,retain) NSMutableArray *stateArray; 
@property (nonatomic,retain) NSMutableArray *tempArray; 
@property (nonatomic,retain) UITableView *tempTable; 


- (IBAction) showState:(id)sender; 
- (IBAction) showCountry:(id)sender; 

@ end

RootViewController.m

@implementation RootViewController 

@synthesize btnState,btnCountry, stateArray,countryArray,tempArray; 
@synthesize tempTable; 

#pragma mark - 
#pragma mark View lifecycle 


- (void)viewDidLoad { 

[super viewDidLoad]; 

tempTable.hidden = YES; 

countryArray = [[NSMutableArray alloc]initWithObjects:@"India",@"Pakistan",@"USA",nil]; 
stateArray = [[NSMutableArray alloc]initWithObjects:@"Gujarat",@"Maharashtra", @"Karnataka",nil]; 
tempArray = [[NSMutableArray alloc]init]; 

} 



- (IBAction) showCountry:(id)sender 
{ 
btnCountry = (UIButton *)sender; 
tempArray = countryArray; 
[tempTable reloadData]; 
if([btnCountry isSelected]) 
{ 
    tempTable.hidden = YES; 
    btnCountry.selected = NO; 
} 
else 
{ 
    tempTable.hidden = NO; 
    btnCountry.selected = YES; 
} 
} 


- (IBAction) showState:(id)sender 
{ 
btnState = (UIButton *)sender; 
tempArray = stateArray; 
[tempTable reloadData]; 

if([btnState isSelected]) 
{ 
    tempTable.hidden = YES; 
    btnState.selected = NO; 
} 
else 
{ 
    tempTable.hidden = NO; 
    btnState.selected = YES; 
} 
} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 

return 1; 
} 


// Customize the number of rows in the table view. 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section  { 

return [tempArray count]; 
} 


// Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

static NSString *CellIdentifier = @"Cell"; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
} 

cell.textLabel.text = [tempArray objectAtIndex:indexPath.row]; 

return cell; 
} 


@end 
+0

好的。將TableView放置在RootViewController的筆尖上,並將其連接到文件的所有者。此代碼很好地工作... – Developer

+0

它的工作非常感謝 – crazy2431

1

問題還不夠清楚,你試過了什麼? .. 但是,您可以使用UIPopOverController爲 看到 THIS LINK

或只是一個靜態的UITableView在同一個NIB文件,,隱藏它,當你不需要它。

+0

雅我遵循相同的鏈接。在上面的鏈接,當我們點擊按鈕列表出現。名稱的方式,我想有一個更多的按鈕旁邊,例如「國家」,當我點擊國家列表應出現使用相同的tableViewController類。我們怎麼做?列表中的數據應該是不同的。 – crazy2431

+0

Lsn,做一個有兩個方法一個爲國家和一個爲國家或任何其他每個函數返回一個NSMutableArray,所以你可以調用它們在Uitableviewcontroller類, 在主要的筆尖文件和當你調用uitableview類一定要通過一個參數,直到uitablview調用哪個函數加載到表中,這將需要很長時間來完成,但會節省你一些時間,當你添加更多的表! 我希望你明白了! –

0

帶兩個tableViews和兩個按鈕。

將每個tableview放在每個按鈕的下面。

最初,兩個TableView都是隱藏的。當按鈕被點擊時用動畫顯示TableView。

+0

沒有其實我只需要使用一個tableView,因爲如果需要更多按鈕列表我不能繼續添加越來越多tableViews多數民衆贊成的原因。 – crazy2431

+0

然後採取兩個臨時數組(國家和州),並保存數據,無論你想在這個數組中顯示。現在當選擇國家按鈕時,將臨時數組(國家)的值分配給TableView.ViceVersa – Developer

+0

我該怎麼做,因爲我是新來的IOS我可以高清一些示例代碼 – crazy2431

0

我認爲你應該只使用一個TableViewController,但使用不同的數據源。

+0

我該怎麼辦我可以有一些示例代碼?對於我正在使用的一個按鈕linkhttp://mobiforge.com/designing/story/using-popoverview-ipad-app-development如果我需要添加一個按鈕和不同的數據列表,我該怎麼辦? – crazy2431

1

你可以使用一個表格來做到這一點:在這裏我只附加邏輯。

在viewDidLoad中,

將有兩個陣列countryArray和stateArray。

將會有一個第三陣列:tempArray

有兩個按鈕:按鈕1和按鈕2 tableview.hidden = YES;

在button1Action分配在button2Action的countryArray到tempArray並且還[tableview中重裝]

分配stateArray到tempArray並且還[tableview中重裝]

然後在tableview中的代表,

  • (NSInteger)tableView :(UITableView *)表numberOfRowsInSection :(NSInteger)部分 {

    return [tempArray count];

}

,然後在

  • (的UITableViewCell *)的tableView:(UITableView的*)的tableView的cellForRowAtIndexPath:(NSIndexPath *)indexPath {

使用tempArray .. .....

}

試試這個...如果你想更詳細的請通知....

相關問題