2011-12-15 5 views
1

ビュー内に2つのボタンがあり、1つはCOUNTRY、もう1つはSTATEであるサンプルアプリケーションを実行したい。 国別ボタンをクリックすると国リストがポップアップのようなテーブルビュークラスに表示され、状態ボタンをクリックすると状態リストがポップアップのようなテーブルビューに表示されるはずです。1つのTableViewControllerクラスを使用して2つのテーブルビューリストを作成

注:国と州の両方のデータリストに対して1つのTableViewcontrollerクラスを使用する必要があります。

+0

ポップアップはお勧めしません。最善の方法は、ピッカービューを2つのセクションで使用することです.1つはすべての国を持ち、もう1つは州を持ちます。 – 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; 

@最後

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

RootViewControllerのペン先にTableViewを配置し、それをファイルの所有者に接続します。このコードはうまく動作します... – Developer

+0

ええ、それは多くのおかげで動作します – crazy2431

1

質問が十分ではない、何を試しましたか? ... しかし、あなたはあなたがそれを必要としないとき、それは隠し作る,, THIS LINK

、または同じnibファイル内だけでのスタティックのUITableViewを見ること ためUIPopOverControllerを使用することができます。

+0

私は同じリンクに従っています。上記のリンクでボタンリストをクリックすると表示されます。同じ方法で、隣にもう一つのボタンがあります。たとえば、国をクリックすると "countries"が表示されます。同じtableViewControllerクラスどのようにすればいいのですか?リストのデータは異なるはずです。 – crazy2431

+0

LSN、UあなたはのUITableViewControllerクラスでそれらを呼び出すことができるように、メインnibファイルに ,, ,,各機能はNSMutableArrayのを返す二つの方法の国のためのものと状態または何か他のもののための1つを持っているNotherのクラスを作成し、 uitableviewクラスを呼び出すと、テーブルにロードする関数uitablviewが呼び出されるまで引数を渡すようにしてください。これは時間がかかりますが、テーブルを追加すると時間を節約できます!! 私はあなたがそれを持って願っています! –

0

2つのtableViewと2つのボタンを取ります。

各テーブルビューを各ボタンの下に配置します。

最初は両方のTableViewが非表示になっています。ボタンをクリックすると、アニメーション付きのTableViewが表示されます。

+0

実際には、ただ1つのtableViewを使う必要があります。なぜなら、もっと多くのボタンリストを必要とすると、それ以上のtableViews thats理由を追加し続けることができないからです。 – crazy2431

+0

次に、2つのテンポラリ配列(国と州)を取り、この配列に表示するデータを保存します。今Countryボタンが選択されると、TableView.ViceVersa – Developer

+0

に一時配列(国)の値を割り当てます。私はiosの新機能として、どのようにすればいいですか?hvサンプルコード – crazy2431

0

私はあなたが1つのTableViewControllerを使用する必要がありますが、異なるデータソースを使用すると思う。

+0

どうすればいいですか? 1つのボタンのために私は以下のリンクを使用しています.http://mobiforge.com/designing/story/using-popoverview-ipad-app-developmentもし私がもう一度ボタンとdifferntデータリストを追加する必要があるなら、どうすればいいですか? – crazy2431

1

これに対して、1つのテーブルビューを使用することができます。ここでは、ロジックのみを添付しています。

のviewDidLoadで

二つの配列countryArrayとstateArrayがあります。

第3のアレイがあります:tempArray

二つのボタンがある:ボタン1とボタン tableview.hidden = YESで、 [テーブルビューのリロード]テーブルビューのデリゲートで、次いで

もtempArrayにstateArrayを割り当て、button2ActionでtempArrayにcountryArrayまた、[テーブルビューのリロード]

を割り当てるbutton1Actionに

  • (NSInteger)tableView:(UITableView *)テーブルnumberOfRowsInSection:(NSInteger)セクション {

    戻り値[tempArray count];

}

、次いで

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

使用tempArray .. .....

}

...これを試してみて、あなたがしたい場合は、より詳細のplsはここ....

関連する問題