-1

ボタンを作成し、Interface Builder のアクションに接続しました。ビューの表示からテーブル ビューの表示に切り替えるには、アクション メソッドで何をする必要がありますか?

これが私のコードの一部です:

//  SwitchToTableViewController.h

#import <UIKit/UIKit.h>

@interface SwitchToTableViewController : UIViewController {


}

-(IBAction) switch : (id) sender;

@end

//SwitchToTableViewController.m
#import "SwitchToTableViewController.h"
#import "Table.h"
@implementation SwitchToTableViewController

-(IBAction) switch : (id) sender{

    // what is i need to write here to switch to tableview


}

@end

//table.m
#import <UIKit/UIKit.h>


@interface Table : UITableViewController {


}

@end

//table.h
#import "Table.h"


@implementation Table

#pragma mark Table view methods

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}


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


// 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];
    }

    // Set up the cell...

    return cell;
}

@end
4

3 に答える 3

0

まず、SingleView アプリケーション (UIViewController ベース) を作成し、SwitchingView という名前を付けます。

次に、ビューの上に UITableView を追加します。Interface Builder を使用して接続します。tableview のデリゲートとデータソースを SwitchingView として設定します。

また、ビューにボタンを追加します (テーブル ビューを追加する前に)。IB(インターフェースビルダー)を使用して、テーブルビューを非表示に設定します。

ボタンでアクションを行う

      tableview.hidden = NO;

これにより、テーブルビューが表示されます!!! ビューを再度表示したい場合は、

      tableview.hidden = YES;

tableView:didSelectForIndexPathRow メソッドで。

于 2012-07-08T18:17:39.637 に答える
0

ここには、2 つのビューではなく、 2 つのビューコントローラーがあります。この 2 つの概念の違いを理解することは非常に重要です。私はあなたが読む必要がある他のいくつかのキーワードの下の答えに太字を入れました.

ボタンの押下などに応答して別のView Controllerを表示するには、目的のView Controllerの新しいインスタンスを作成し、何らかの方法で画面に表示する必要があります。

これを行うには多くの方法がありますが、初心者にとって最も簡単な方法は、これらすべてをストーリーボードで行うことです。両方のビュー コントローラーをストーリーボードに追加します。

最初のビュー コントローラー (ボタン付き) は、UINavigationControllerに埋め込む必要があります。ボタンからテーブル ビュー コントローラにControl キーを押しながらドラッグします。これにより、セグエが作成されます。オプションのリストから「プッシュ」を選択します。

ボタンを押すと、テーブル ビューが画面に表示されます。

于 2012-07-08T12:05:28.617 に答える
0

必要なもの:

  1. テーブルのインスタントを作成します。

  2. セル データを表示するために使用できるように、データをこのインスタントに渡します。ほとんどの場合は配列です。最初に Table クラスにいくつかの iVar を作成する必要があります。現在、あなたは何も持っていません。

  3. テーブル インスタントを提示する多くの方法から 1 つを選択します。

Apple のドキュメントを調べてください。かなりのサンプルコードがあります。

サンプルコードの編集:

SwitchToTableViewController.hファイルに次の行を追加します。

#import "Table.h"

SwitchToTableViewController.mで、この変更を行います

-(IBAction) switch : (id) sender{

    // what is i need to write here to switch to tableview
    Table *myTable = [[Table alloc]init];
    myTable.cellArray = [NSArray arrayWithObjects:@"Item1", @"Item2", @"Item3", nil];  //only an example to be displayed
    [self presentViewController:myTable animated:YES completion:nil];  // present your Table - view controller

}

ファイルTable.hは次のようになります。

#import <UIKit/UIKit.h>

@interface Table : UITableViewController {

}
@property (nonatomic, strong) NSArray *cellArray;  // adding this line to get data from the parent
@end

Table.mで、この変更を行います

@implementation Table

@synthesize cellArray;  //add this line right after @implementation Table

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

    // Return the number of rows in the section.
    return cellArray.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    // Configure the cell...
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.textLabel.text = [cellArray objectAtIndex:indexPath.row];
    }

    return cell;
}
于 2012-07-08T11:18:23.843 に答える