나는 다음 주 코드가 작동하지 않는 이유를 알아 내려고 온종일 오후 내내 머리카락을 꺼내 왔습니다. 내가하려고하는 것은 하나의 클래스에서 다른 클래스로 문자열을 전달하는 것입니다. 내 FirstDetailViewController.h 파일에서@property를 사용하여 한 클래스에서 다른 클래스로 값 전달
나는
@property(nonatomic, retain) NSString *infoForArray;
그리고 그때 내 Grinding01_DetailViewController.m에 내가 문자열
#import "Grinding01_DetailViewController.h"
#import "FirstDetailViewController.h"
@implementation Grinding01_DetailViewController
...
NSString *didLoadMessage = @"Grinding01 Loaded";
FirstDetailViewController *temp = [[FirstDetailViewController alloc] initWithNibName:@"FirstDetailView" bundle:nil];
temp.infoForArray = didLoadMessage;
[self.navigationController pushViewController:temp animated:YES];
}
에 대한 값을 설정하려고있는 NSString를 선언 할 때 I 출력 infoForArray에서 FirstDetailViewController.h는 null입니다.
도움이 될만한 정보가 있으면 누락 된 간단한 단계가 있다고 생각하지만 도움이되지 않습니다.
편집 : 여기 내 생각 엔 당신이 어딘가에 infoForArray 확인되어있는 FirstDetailViewController
FirstDetailViewController.h
#import <UIKit/UIKit.h>
#import "Protocols.h"
@interface FirstDetailViewController : UIViewController <SubstitutableDetailViewController> {
//for the output
IBOutlet UITextView *outputView;
UIToolbar *navigationBar;
NSMutableArray *logMessages;
}
@property (nonatomic, retain) IBOutlet UIToolbar *navigationBar;
//for incoming messages
@property(nonatomic, retain) NSString *infoForArray;
@end
FirstDetailViewController.m
#import "FirstDetailViewController.h"
@implementation FirstDetailViewController
@synthesize navigationBar, infoForArray;
-(void)viewDidLoad{
[super viewDidLoad];
//The log cannot be changed
outputView.editable = NO;
}
#pragma mark -
#pragma mark View lifecycle
- (void)viewDidUnload {
[super viewDidUnload];
self.navigationBar = nil;
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:YES];
NSLog(@"message: %@", infoForArray);
outputView.text = infoForArray;
}
#pragma mark -
#pragma mark Managing the popover
- (void)showRootPopoverButtonItem:(UIBarButtonItem *)barButtonItem {
// Add the popover button to the toolbar.
NSMutableArray *itemsArray = [navigationBar.items mutableCopy];
[itemsArray insertObject:barButtonItem atIndex:0];
[navigationBar setItems:itemsArray animated:NO];
[itemsArray release];
}
- (void)invalidateRootPopoverButtonItem:(UIBarButtonItem *)barButtonItem {
// Remove the popover button from the toolbar.
NSMutableArray *itemsArray = [navigationBar.items mutableCopy];
[itemsArray removeObject:barButtonItem];
[navigationBar setItems:itemsArray animated:NO];
[itemsArray release];
}
#pragma mark -
#pragma mark Rotation support
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
#pragma mark -
#pragma mark Memory management
- (void)dealloc {
[navigationBar release];
[super dealloc];
}
@end
FirstDetailViewController 구현의 맨 위에 infoForArray 속성을 합성하고 있습니까? – lottscarson
옙,'@synthesize 내비게이션 바, infoForArray,' – BloonsTowerDefence