[英]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協議以填充表視圖。 (請查看適用於iOS的Table View編程指南,以了解其工作原理)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.