0

ビュー、ボタン、ツールバーボタン、テキストボックス、およびテーブルビューを含むviewcontroller.xibがあります。ロードすると、最初の画面にテーブルビューが表示されませんが、これは問題ありません。ビューテーブルなどのツールバーボタンをクリックすると、ビューがテーブルビューに移動します。テーブルビュー データに、次のようなデフォルト オブジェクトを入力しました。

- (void)viewDidLoad
{
       tableData = [[NSArray alloc] initWithObjects:@"object1",@"object2",@"object3",@"object4", nil];

    [super viewDidLoad];

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [tableData count];
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = nil;

    cell = [tableView dequeueReusableCellWithIdentifier:@"My Cell"];

    if(cell==nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"My Cell"];
    }
    cell.textLabel.text=[tableData objectAtIndex:indexPath.row];
    return cell;
}

したがって、ツールバーのビューボタンをクリックすると、戻るボタンもあるツールバーボタン付きのテーブルビューが表示されるので、クリックするとテーブルビューが非表示になり、初期ビューが表示されます。これをすべて単一のxibで行うことは可能ですか? 別のxibを作成し、そのxibに制御を移すだけで結果を得ることができますが、2番目のxibファイルを作成せずにこれを実行できるかどうかを知りたいと思いました。また、ナビゲーションにもナビゲーションコントローラーを使用できますが、ツールバーを使用してコントロールを転送できるかどうかを確認したいと思います。ありがとう。

4

5 に答える 5

0

アニメーションが必要ない場合は、次のことができます

  1. 次のように、インターフェイスで tableView のハンドルを取得します。

    @property(nonatomic,assign)IBOutlet UITableView *tableView;

  2. 最初にテーブルビューを非表示にします(viewDidLoadメソッドのように)

    -(void)viewDidLoad { [super viewDidLoad]; self.tableView.hidden = はい; }

  3. 次に、ツールバーのボタンによって呼び出されるメソッドで、次のことを行います

    -(void)on_click_toolbar_button { self.tableView.hidden = !self.tableView.hidden; //これにより、テーブル ビューが非表示から表示に、またはその逆に切り替えられます。}

于 2013-08-13T08:05:51.757 に答える
0

最初にテーブルビューがビュー内にあるかどうかを確認し、そうでない場合はデータソースのデリゲートをファイル所有者に設定し、ビューテーブルメソッドでこのコードを記述します

-(void)viewTable
{
self.tableView.hidden = NO;
self.viewToolbar.hidden=YES;
}

ツールバーの戻るボタンのコードに書き込みます

-(void)goback
{   
self.tableView.hidden = YES;
self.viewToolbar.hidden=NO;
}
于 2013-08-13T11:41:29.473 に答える
0

これはお勧めできませんが、tableview を削除して追加することでこれを行うことができます。

于 2013-08-13T08:38:16.187 に答える