0

Objective-C は初めてですが、気に入っています。地元の消防士向けの無料アプリケーションを開発しています。アプリは特に難しいことは何もしませんが、メイン メニューに大きな問題があります。アプリケーションのすべてのセクションのテーブル コンテンツを既に作成しており、他の ViewController にアクセスできる方法でドリル ダウン メソッドを実装しようとしています。しかし、私はそれを行う方法が本当にわかりません。私はたくさんグーグルで調べましたが、Xcodeの古いバージョンを参照している断片的なドキュメントしか見つかりませんでした. バージョン 4.5.2 とストーリーボードを使用しています。

ここに画像の説明を入力

ここにメニューがあります.h

    #import <UIKit/UIKit.h>

    @interface Menu : UITableViewController
    @property (nonatomic, retain) NSMutableArray *listaMenu; //questo sarà il mio array contentente le varie opzioni della tabella

    @end

そしてmenu.m

#import "Menu.h"
#import "News.h"

@interface Menu ()

@end

@implementation Menu

@synthesize listaMenu; //creo i metodi getter e setter

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.title = @"Menu";

    //Elementi da visualizzare nella tabella
    listaMenu = [[NSMutableArray alloc] initWithObjects: @"News", @"Memebri", @"Calendario", @"Interventi", @"Galleria", @"Mezzi", @"Reclutamento",  nil];

    // Uncomment the following line to preserve selection between presentations.
    // self.clearsSelectionOnViewWillAppear = NO;

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Table view data source

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

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //funzione in cui va inserito il numero di righe da visualizzare

    return [listaMenu count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell = nil;

    cell =[tableView dequeueReusableCellWithIdentifier:@"PlistCell"];

    if(cell == nil){

        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"PlistCell"];
        [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];
    }

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

    return cell;

}


// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath //Rende gli oggetti NON editabili
{
    // Return NO if you do not want the specified item to be editable.
    //return YES;
    return NO;

}




#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // Navigation logic may go here. Create and push another view controller.

     <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
     // ...
     // Pass the selected object to the new view controller.
     [self.navigationController pushViewController:detailViewController animated:YES];

}

@end

私の問題がよく説明されていることを願っています。

どうもありがとうございました!

4

1 に答える 1

1

について読む必要があります-これは、あるコントローラーから別のコントローラーへのUISegue遷移を処理するオブジェクトです。UIViewControllerInterface Builder では、Ctrl キーを押しながらドラッグして、たとえば aUIButtonと目的の の間にセグエを作成できますUIViewController。これはセグエの最も単純な使い方です。

データを宛先 UIViewController に渡す必要がある場合は、- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)senderメソッドを実装する必要があります。このメソッド内で、segue.destinationViewController必要なデータを取得して送信できます。注: 目的のビュー コントローラーのビューはまだ読み込まれていないため、UIView直接カスタマイズしようとしても、それらは存在しません。非UIプロパティを構成し[segue.destinationViewController view]、View Controller自体に必要なカスタマイズをviewDidLoad.

于 2013-01-15T10:12:45.367 に答える