2014-05-19 4 views
-2

UIViewController에있는 5 개의 레이블에 내 UITableView의 데이터를 푸시하는 데 큰 문제가 있습니다. 나는 당신이 "오르기"를 누르는 앱을 가지고 있으며 어떤 등반을 선택 하느냐에 따라 UIViewController에 푸시 될 때 다른 사양이 표시됩니다. 지금은 그냥 빈 화면으로 이동합니다. 내 레이블을 내 수업에 연결하고, 올라가는 방법에 따라 각 라벨에 다른 정보를 전송하는 방법을 확신 할 수 없습니다.UITableViewController에서 UIViewController로 데이터 푸시

FourthTableViewController.h :

#import <UIKit/UIKit.h> 

@interface FourthTableViewController : UITableViewController 

@property (nonatomic, strong) NSString *sectionName; 

@property (nonatomic, strong) NSMutableArray *objects; 
@property (nonatomic, strong) NSMutableArray *results; 

@property (nonatomic, strong) IBOutlet UISearchBar *searchBar; 

@end 

FourthTableViewController.m :

#import "FourthTableViewController.h" 
#import "DetailViewController.h" 


- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

UIBarButtonItem *NewBackButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:nil]; 
[[self navigationItem] setBackBarButtonItem:NewBackButton]; 

self.tableView.separatorColor = [UIColor colorWithRed:183/255.0 green:207/255.0 blue:85/255.0 alpha:0.5]; 

//populating arrays 
NSDictionary *dict = @{/*Moss Rock Sections*/@"Grass Man":@[@"Tesseract", @"Chalky Dreams", 
@"Aristocratic Nose", @"Bee Stings", @"Recovery Run Traverse", @"Heel Shock", @"Fourth of July", 
@"No Sack", @"Poop Dreams", @"Hoop Dreams", @"Grass Man Traverse", @"Mikey Likes It", @"Just 
Throw", @"Rapture", @"Caveman Hunt", @"Batman Dyno", @"Waiting Line", @"Petrified Lady 
(project)", @"Up and Over", @"Rocker", @"Heart", @"Left Ventricle", @"Poison Ivey", @"Snake 
Eyes", @"Rattle", @"Shape Shifter", @"Road to Nowhere", @"Beef It", @"Switchback", @"Pine 
Phriend", @"Hanging Out", @"Warp Hole", @"Deet", @"Mosquito Bites"], @"Lost Roof": @[@"I'll 
Tumble for Ya", @"Snoopy's House", @"Treelee", @"Lost Roof Problem"], @"Ozzy":@[@"Clark Direct", 
@"Long Shot", @"Pile", @"Revolver", @"The Bomb", @"Suntoucher", @"A Young One", 
@"Nebuchadnezzar's Dream", @"Profanity", @"Godfather", @"Re-Ignition", @"Rancid", @"Tree 
Problem", @"Scrutinzier", @"Little Big Horn", @"Cheese is Good", @"Maybe Later", @"Double 
Clutch", @"A.X Variation", @"Salute", @"Ozzy Crack", @"Adam's Slab", @"Orange Streak", @"Tommy 
H", @"Vast Understatement", @"Super Crimp", @"Big Ben", @"Fat Cut", @"It Burns!", @"The Trip", 
@"Tesseract"]/*End Moss Rock Sections*/, @"Colorado Section 1":@[@"Colorado Climb 1", @"Colorado 
Climb 2", @"Colorado Climb 3"]}; 

climbs = dict[self.sectionName]; 

[self.objects addObjectsFromArray:climbs]; 
} 

DetailViewController.h :

#import <UIKit/UIKit.h> 

@interface DetailViewController : UIViewController 

@property (strong, nonatomic) NSString *detailLabelContents; 
@property (weak, nonatomic) IBOutlet UILabel *detailLabel; 

@property (weak, nonatomic) IBOutlet UILabel *titleLabel; 
@property (weak, nonatomic) IBOutlet UILabel *gradeLabel; 
@property (weak, nonatomic) IBOutlet UILabel *coordinatesLabel; 
@property (weak, nonatomic) IBOutlet UILabel *rockLabel; 
@property (weak, nonatomic) IBOutlet UILabel *difficultyLabel; 


@property (nonatomic, strong) NSString *climbName; 

@end 
지금 내 코드를 게시 할 예정입니다

DetailViewController.m :

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

UIBarButtonItem *NewBackButton = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStyleBordered target:nil action:nil]; 
[[self navigationItem] setBackBarButtonItem:NewBackButton]; 

//populating arrays 
NSDictionary *dict = @{@"Alabama Climb 1":@[@"Alabama Spec 1", @"Alabama Spec 2", @"Alabama Spec 
3"], @"Georgia Climb 1": @[@"Georgia Spec 1", @"Georgia Spec 2", @"Georgia Spec 3"], @"Tennessee 
Climb 1":@[@"Tennessee Spec 1", @"Tennessee Spec 2", @"Tennessee Spec 3"], @"Colorado Climb 
1":@[@"Colorado Spec 1", @"Colorado Spec 2", @"Colorado Spec 3"]}; 

specs = dict[self.climbName]; 

self.detailLabel.text = self.detailLabelContents; 
} 

요약하면, 내가 좋아하는 것의 상승은 또 다른 상승은 사양에 올라이 선택 될 때, 사양이가 밀려있는 UIViewController에 5 개 라벨에 표시 올라이 선택 될 때 나타나다. (나는 그것이 거대한 if/else 서술이 될 것이라고 추정한다).

모든 조언이나 건설적인 비판은 많이 받아 들여질 것입니다. 제 문장이 완벽하지는 않습니다. 나는이 언어에 익숙하지 않습니다.

감사합니다.

+0

viewDidLoad 당신이 어디 레이블 텍스트를 설정하고이 작업을 수행? –

+0

나는 그것이 내 질문이다. 나는 원하는 것을 성취하기 위해 그것을 어떻게 수행해야하는지, 어디서 그것을해야 하는지를 확신하지 못한다. – javaGeek

답변

1

레이블 텍스트를 설정하려면 NSString을 다음 view controller으로 전달한 다음 viewDidLoad에 설정해야합니다.

레이블에 해당하는 5 가지 속성을 만들고 prepareForSegue 방법으로 climbNameNSString과 같이 데이터를 전달하십시오.

레이블의 텍스트를 설정하려면, 당신 destination view controller

self.titleLabel.text = self.myStringThatIPassed; 
+0

맞아요, 그렇다면이 DVC에있는 "viewDidLoad"에있는 거대한 다른 if 문을 만들면이 등반을 선택하면이 텍스트에 레이블을 설정하겠습니까? – javaGeek

+0

죄송합니다.이 개념을 감안할 때 머리를 감쌌습니다. 제공 한 코드로 한 가지 예를 보여 주시겠습니까? 그런 다음 그것을보고 더 잘 이해하고 시각화 할 수있었습니다. 하나의 등반으로 특정 텍스트로 레이블을 설정할 수 있습니다. – javaGeek

+0

실제로는 prepareForSegue에서 전달할 데이터 또는 문자열을 결정하지 않습니다. –

관련 문제