簡體   English   中英

使用情節提要的多個View Controller

[英]Multiple View Controllers using storyboard

我是創建iPhone應用程序的新手。 我正在嘗試創建一個簡單的listapp。 基本上,它將具有一堆列表類別,然后單擊該類別,它將打開一個包含一堆列表的表,您可以在該列表上添加項目。

我正在使用情節提要,並且有一些視圖控制器。

它的編譯沒有錯誤,我可以在第一個表視圖控制器上添加類別,但是當我單擊類別並嘗試添加項目時,出現此錯誤-線程1:signal SIGABRT

我可能在猜測,因為我沒有在appdelegate.m上初始化其余的viewControllers

這是我為appDelegate.m提供的代碼

  #import "AppDelegate.h"
#import "ListViewController.h"
#import "List.h"


@implementation AppDelegate {
    NSMutableArray *items;
}

@synthesize window = _window;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.

    items = [NSMutableArray arrayWithCapacity:20];
    List *item = [[List alloc] init];
    item.title = @"Grocery List";
    [items addObject:item];

    item = [[List alloc]init];
    item.title = @"Project List";
    [items addObject:item];

    item = [[List alloc] init];
    item.title = @"Events List";
    [items addObject:item];

    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    UINavigationController *navigationController = [[tabBarController viewControllers]objectAtIndex:0];
    ListViewController *listViewController = [[navigationController viewControllers]objectAtIndex:0];
    listViewController.lists = items;

    return YES;
}


@end

我實際上對如何初始化appDelegate.m上的其余視圖控制器有些困惑。

請幫助我,在此先感謝

通常,您不應在AppDelegate中初始化視圖控制器。

在大多數情況下,您可以在視圖控制器的viewDidLoad方法中對其進行初始化。

要將其應用於上面的示例,請將您的application:didFinishLaunchingWithOptions:方法更改回默認值:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    return YES;
}

然后轉到ListViewController.m文件,並將所有項目的初始化代碼放在viewDidLoad中,使其看起來像這樣:

- (void)viewDidLoad
{
    [super viewDidLoad];

    items = [NSMutableArray arrayWithCapacity:20];
    List *item = [[List alloc] init];
    item.title = @"Grocery List";
    [items addObject:item];

    item = [[List alloc]init];
    item.title = @"Project List";
    [items addObject:item];

    item = [[List alloc] init];
    item.title = @"Events List";
    [items addObject:item];

    self.lists = items;

}

我假設您的ListViewController是UITableViewController子類(或其中包含UITableView的UIViewController)。 然后,您將實現UITableViewDelegate和UITableViewDataSoure協議以填充表視圖。 (請查看適用於iOSTable View編程指南,以了解其工作原理)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM