0

私は問題に行き詰まりました。いくつかのビュー コントローラーを含むストーリーボードがあります。

私がする必要があるのは、PikerView が配列をアップロードする場所 (隣人ではなく、セグエ経由で接続されていない)FirstViewControllerから配列を渡す必要があることです。SecondViewControllerその後、選択した結果を に渡す必要がありますThirdViewController。タブバービューコントローラーに接続され、プッシュセグエ経由で接続されFirstViewControllerているアプリケーションをタブ化しました。SecondViewControllersThirdViewControllerSecondViewController

First から Second にデータ フォームを渡す方法を確認する

CategoryExpencesViewController.h

#import <UIKit/UIKit.h>
#import "AddCategoryViewController.h"
#import "CategoryPickerViewController.h"
@interface CategoryExpencesViewController : UITableViewController         <AddCategoryViewControllerDelegate>
@property(nonatomic, weak) IBOutlet UIBarButtonItem *editButton;
@property(nonatomic, strong) NSMutableArray *categories; //list of category items
@property(nonatomic, strong) NSMutableArray *listOfCategories; //list of category names

CategoryExpencesViewController.m

-(void)updateArray
{
CategoryPickerViewController *controller = [[CategoryPickerViewController alloc]init];
controller.categoryList = [[NSMutableArray alloc]init];
controller.categoryList = listOfCategories;
NSLog(@"%d", [listOfCategories count]);
NSLog(@"%d", [controller.categoryList count]);

}
4

3 に答える 3

0

あなたはそれを解決したと思いますが、記録のためにこれを投稿します:

配列をクラスにラップし、静的構築メソッドを持たせます。

ラッパー.h:

    @property (nonatomic, strong) NSMutableArray* array;
    +(Wrapper*)createArray;

ラッパー.m:

    +(Wrapper*)createArray{
        static Wrapper* instance = nil;
        if (instance == nil) {
            instance = [[Wrapper alloc] init];
            //Your initialization code for the array
        }
        return instance;
    }

次に、FirstViewController で:

    -(void)updateArray{
        CategoryPickerViewController *controller = [[CategoryPickerViewController alloc]init];
        controller.categoryList = [[NSMutableArray alloc]init];
        controller.categoryList = [[Wrapper createArray] array];
        NSLog(@"%d", [listOfCategories count]);
        NSLog(@"%d", [controller.categoryList count]);

    }

これは Wrapper への最初の呼び出しであるため、配列が生成されます。次に、SecondViewController で、次のように呼び出します。

    secondView.categoryList = [[Wrapper createArray] array];

FirstViewcontroller と同じ配列を取得します。

于 2013-10-10T16:29:17.417 に答える
0

これが必要だと思います

あなたのプッシュセグエを使用してください。

segue.sourceViewController(または自己) は を指しSecondViewControllerます。 segue.sourceViewController.tabBarControllerタブバーコントローラーを指します。

Tab Bar Controller から、あなたのFirstViewController.

于 2013-09-03T12:38:07.610 に答える