2013-10-17 3 views
0

아이폰 앱을 만들 때 새로운 기능입니다. 간단한 listapp를 만들려고합니다. 기본적으로 목록 범주가 여러 개있을 것입니다. 그런 다음 범주를 클릭하면 목록이 여러 개있는 테이블이 열리 며 목록에 항목을 추가 할 수 있습니다.스토리 보드를 사용하는 다중 뷰 컨트롤러

저는 스토리 보드를 사용하고 있으며 몇 가지보기 컨트롤러가 있습니다. 오류없이 컴파일

그것의, 나는 첫 번째 테이블 뷰 컨트롤러에 카테고리를 추가 할 수 있지만 나는 범주를 클릭하고 나는이 오류 항목 추가하려고 할 때 - 스레드 1 : 신호 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 

에 대해 가지고있는 코드를 추측하고 내가 어떻게 오전에 약간 혼동 실제로 해요 viewcont의 나머지 부분을 초기화하려고합니다. appDelegate.m의 롤러.

은 AppDelegate에 당신의 뷰 컨트롤러를 초기화 안, 일반적으로 사전

+0

팁 : SIGABRT 오류가 발생하면 예외 중단 점을 설정하십시오. - http://blog.manbolo.com/2012/01/23/xcode-tips- 1-break-on-exceptions (Google에서 찾은 자습서). 오류가 발생한 곳을 알려줍니다. – Kevin

답변

0

에 나와 감사를 도와주세요.

대부분의 경우 viewDidLoad 메서드에서보기 컨트롤러를 초기화 할 수 있습니다.

은, 위의 예에이를 적용하여 응용 프로그램을 변경하려면 : 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 서브 클래스 (또는에서 jQuery과와의 UIViewController)입니다 있으리라 믿고있어. 그런 다음 UITableViewDelegate 및 UITableViewDataSoure 프로토콜을 구현하여 테이블 뷰를 채 웁니다. (어떻게 작동하는지 이해하려면 Table View Programming Guide for iOS을보십시오)

관련 문제