나는 약간의 딜레마가 있으며 좋은 사람들이 나에게 프로그래밍 전문 지식을 빌려줄 수 있는지 궁금해하고 있었다. 여기서 간단하고 정확하게하려고 노력할 것입니다.iPhone이 다른 viewController에서 NSMutableArray에 추가
저는 새로운 IOS 개발자이며 몇 달 동안 만 학습했습니다. 나는 대학에서 내 논문을위한 아이폰 응용 프로그램을 개발 중이다. 이 응용 프로그램은 자습서로 구성된 iPhone 자체 용으로 개발하고자하는 사람들을위한 안내서입니다. 수많은 테이블 뷰로 구성되어 있지만, 저에게 난처한 점이 하나 있습니다.
무엇을하려고합니까 : 내 앱에 포함하려는 기능 중 하나가 북마크 기능이며 탭 표시 줄에서 액세스 할 수 있습니다. 기존 NSMutableArray에 문자열을 추가하는 모든 nib 파일 (자습서)에서 버튼을 클릭 할 수 있기를 원합니다. 이 문자열은 IB-Action이 수행 된 튜토리얼의 이름과 일치하며 배열에 추가 된 후 인덱스 경로에서 행을 선택할 때 nib 파일을로드 할 수 있습니다.
문제점 : 배열을 포함하는 구현 파일에서 배열에 개체를 추가 할 수 있지만 다른 구현 파일에서 추가하는 방법을 알 수 없습니다. UITable 뷰는 배열에서 완벽하게 채워지지만 새로운 항목을 추가하는 것은 또 다른 이야기입니다.
나는 내 코드를 보여줄 것이지만, 관련이없는 것은 제외 할 것입니다.
BookmarksViewController.h
@interface BookmarksViewController : UITableViewController {
NSMutableArray *bookmarksArray;
}
@property (nonatomic, retain) NSMutableArray *bookmarksArray;
@end
BookmarksViewController.m 제 VIEW 제어기
FOR NOW
-(void)viewDidLoad {
bookmarksArray = [[NSMutableArray alloc] init];
NSLog(@"String Added");
[bookmarksArray addObject:@"String"];
[super viewDidLoad];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// Configure the cell...
cell.textLabel.text = [bookmarksArray objectAtIndex:indexPath.row];
return cell;
}
-(void)dealloc {
[bookmarksArray release];
[super dealloc];
}
Ch01GettingStarted.h
-(IBAction) pushChap01Bookmark:(id)sender{
BookmarksViewController *bookmarksViewController = [[BookmarksViewController alloc]init];
[bookmarksViewController.bookmarksArray addObject:@"NewString"];
NSLog(@"ADD ENTRY");
[bookmarksViewController.tableView reloadData];
NSLog(@"RELOAD TABLE");
[bookmarksViewController release];
NSLog(@"ADD BOOKMARK RELEASE");
}
@interface Ch01GettingStarted : UIViewController {
IBOutlet UIScrollView *ScrollView;
}
-(IBAction) pushChap01Bookmark:(id)sender;
@end
Ch01GettingStarted.m은 BTW - IB에-조치 헤더 파일에 선언했다.
아, 원래 '[BookmarksViewController.bookmarksArray addObject : @ "NewString"];' 그러나 나는 "expected": 'at' '이라는 오류를 보았고, bookmarkViewController의 인스턴스 변수를 사용해야하므로 어딘가에서 읽고 addObject 메소드 바로 위에 선언했습니다.
오랫동안이 작업을 해오지 않았으므로 나에게 친절하게 대해주십시오.하지만 이것은 내 전문적인 미래의 큰 부분이 될 것입니다.
누구든지 내게 제공 할 수있는 통찰력은 마법이 될 것입니다.
감사합니다. 감사합니다.
빠른 팁 : 질문에서 코드를 선택하고 툴바에서 '{}'버튼을 누르십시오. 코드를 블록에 넣고 글꼴을 변경하여 읽기가 훨씬 쉬워집니다. –