2011-02-24 2 views
7

버튼을 누른 다음 UIAlertView이있는 응용 프로그램을 실행하려고 시도하고 있으며 사용자 정의 단추가 3 개있는 UIView이 있습니다. 지금까지 모든 것이 작동합니다. 내가 3 버튼 중 하나를 클릭하면 UIImageView의 이미지를 변경하고 싶습니다. 문제는 내 앱을 시작하려고 할 때마다 갑자기 아무 일도 일어나지 않는다는 것입니다. 이 라인에 내 AppDelegate.mself.window.rootViewController를 설정하면 SIGABRT가 발생합니다

SIGABRT 일 : 누군가가 나를 도울 수 있다면

self.window.rootViewController = self.viewController; 

이 좋은 것 그리고 그 길을 메신저로 매우 엑스 코드와 사용되지 오브젝티브 -C 그래서 난이 없습니다 이것이 일어나는 이유에 대한 단서.

여기 여기 MainWindow.xib에있는

#import "savingstatusViewController.h" 

@implementation savingstatusViewController 

@synthesize loginView; 
@synthesize statusImage,MyTicketAlert; 

- (void)dealloc 
{ 
    [super dealloc]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - View lifecycle 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
} 

- (void)viewDidUnload 
{ 
    [self setLoginView:nil]; 
    [self setStatusImage:nil]; 
    [super viewDidUnload]; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return YES; 
} 

- (IBAction)status:(id)sender 
{ 
    MyTicketAlert = [[UIAlertView alloc] initWithTitle:nil message:nil delegate:self cancelButtonTitle:nil 
            otherButtonTitles: nil]; 
    [MyTicketAlert addSubview:loginView]; 
    [MyTicketAlert show]; 
    MyTicketAlert.frame = CGRectMake(0, 1000, 440, 110); 
} 

- (IBAction)green:(id)sender 
{ 
    statusImage.image = [UIImage imageNamed:@"etat_controle.png"]; 

    [MyTicketAlert dismissWithClickedButtonIndex:0 animated:YES]; 
} 

- (IBAction)yellow:(id)sender 
{ 
    statusImage.image = [UIImage imageNamed:@"etat_attention.png"]; 

    [MyTicketAlert dismissWithClickedButtonIndex:0 animated:YES]; 
} 

- (IBAction)red:(id)sender 
{ 
    statusImage.image = [UIImage imageNamed:@"etat_danger.png"]; 

    [MyTicketAlert dismissWithClickedButtonIndex:0 animated:YES]; 
} 

@end 
+0

창과 viewController를 초기화하는 코드는 어디에 있습니까? 그걸 게시 할 수 있니, 제발? – fbrereto

+0

동일한 문제가 발생했습니다 : ( –

답변

2

가서 내 viewController.m에 "TheNameOfYourProjetdelegate"내 viewController.h

#import UIKit/UIKit.h (i removed < > cause they were hiding everything inbetween in the post.) 

@interface savingstatusViewController : UIViewController { 

    UIView *loginView; 
    UIImageView *statusImage; 
    UIAlertView * MyTicketAlert; 

} 

- (IBAction)status:(id)sender; 

@property (nonatomic, retain) IBOutlet UIView *loginView;  
@property (nonatomic, retain) IBOutlet UIImageView *statusImage; 
@property (nonatomic, retain) IBOutlet UIAlertView * MyTicketAlert; 

- (IBAction)green:(id)sender; 
- (IBAction)yellow:(id)sender; 
- (IBAction)red:(id)sender; 

@end 

입니다. "TheNameOfYourProjetdelegate"의 "출구"에서

당신의 ViewController가 있어야합니다, 당신의 용 애플리케이션 UIWindow rootViewController 속성은 iOS4 이전에 존재하지 않는

5

실행하여 윈도우 등으로 "제어 드래그"할. iOS 3 또는 이전 버전의 기기에서이 코드를 실행하려고하면 충돌이 발생합니다.

AppDelegate에서 대신 addSubview를 사용할 수 있습니다.

//self.window.rootViewController = self.viewController; // Only iOS >= 4 
[self.window addSubview:self.viewController.view]; 
[self.window makeKeyAndVisible]; 
return YES; 
+0

또는 전처리 기와 함께 확인하십시오 : "#if __IPHONE_OS_MIN_VERSION_REQUIRED> = __ IPHONE_4_0" – aksommerville

+0

인터넷에서 약 2 시간 동안이 작업을 수행하고 있습니다. 덕분에 TumbleCow. 이것은 다른 Xcode 버전에서 작업 할 때 진짜로 유용합니다. 이전 IOS 버전으로 작업하는 경우 xcode 4의 빌드 설정에서 armv7을 armv6으로 변경하십시오. –

4

파일의 소유자보기가 잘못 설정되거나 설정되지 않은 경우에도 마찬가지입니다. ViewController.xib의 File 's Owner보기 속성이보기로 설정되어 있는지 확인하십시오. 그 하나를 알아내는 동안 잠시 나갔다!

관련 문제