У меня есть то, что кажется простым, но я просто не могу заставить его работать.
У меня есть переменная, входящая в ViewController (представленный модальным представлением) и в viewController я получаю доступ к appDelelgate, чтобы получить переменную в переданном NSArray. Я могу убедиться, что переменная доступна в моем NSLog, непосредственно перед тем, как запутать ее назначение, поэтому я знаю, что она там есть.
в файле .h есть следующее;
@class ViolinMakerAppDelegate;
@interface DetailsViewController : UIViewController
{
ViolinMakerAppDelegate *dappDelegate;
DetailsViewController *detailsView;
IBOutlet UIViewController *modalViewController;
IBOutlet UITextView *violinMakerDescription;
}
@property (retain, nonatomic) ViolinMakerAppDelegate *dappDelegate;
@property (nonatomic, retain) DetailsViewController *detailsView;
@property(nonatomic, assign) UIViewController *modalViewController;
@property (nonatomic, retain) IBOutlet UITextView *violinMakerDescription;
В файле .m есть следующее.
#import "DetailsViewController.h"
#import "ViolinMakerAppDelegate.h"
@implementation DetailsViewController
@synthesize detailsView, violinMakerDescription, dappDelegate;
- (void)viewWillAppear:(BOOL)animated
{
dappDelegate = (ViolinMakerAppDelegate *) [[UIApplication sharedApplication] delegate];
DetailsViewController *detailsViewController = [[DetailsViewController alloc]initWithNibName:@"DetailsViewController" bundle:nil];
self.detailsView = detailsViewController;
// Tried below, but the variable is not getting to the IBOutlet..
NSString *aviolinMakerDescription = [dappDelegate.violinMakers description];
[self.detailsView.violinMakerDescription setText:aviolinMakerDescription];
NSLog(@"violinMakerDescription: %@", [dappDelegate.violinMakers description]);
// tried -----> [self.detailsView.violinMakerDescription setText:[dappDelegate.violinMakers description]];
}
Я уверен, что это довольно просто, поскольку я знаю, что переменная 'description' содержит то, что я хочу. Я просто продолжаю получать только статический текст в IB. Я уверен, что IB подключен правильно, так как он работает аналогично RootViewController, выдвигающему другое представление, и все соединения одинаковы и очень просты. Одна розетка IB, одна UITextView.
Это звучит безумно для меня, но есть ли причина, по которой это представление находится в модальном представлении, что оно не может загружать переменные в текстовые поля, а только отправлять переменные обратно в программу из модального контроллера?
Кому-нибудь нравится помогать мне пройти через мой плотный череп, чего мне не хватает в этом окончательном коде, чтобы назначить его в IBOutlet ??
Заранее спасибо,
Кирк
@ Скотт
Я перепробовал все, и подумал, что это было то, что было нужно ... на самом деле не уверен.
Здесь я представляю модально DetailsViewController из другого представления, которое выдвигается корневым контроллером.
case 0:
{
DetailsViewController *detailsViewController = [[DetailsViewController alloc] initWithNibName:@"DetailsViewController" bundle:nil];
UINavigationController *aDetailsViewController = [[UINavigationController alloc] initWithRootViewController:detailsViewController];
self.detailsView = detailsViewController;
// °°°[self.view addSubview:detailsViewController.view];
// self.violinMakerView = violinMakerViewController;
// [[self navigationController] pushViewController:detailsViewController animated:YES];
dappDelegate = (ViolinMakerAppDelegate *) [[UIApplication sharedApplication] delegate];
// This does show the variable is loaded here too.
NSLog(@"violinMakerDescription from Details Segment: %@", [dappDelegate.violinMakers description]);
// attempting to load it here as well rem out doesn't change things
[violinMakerDescription setText:[dappDelegate.violinMakers description]];
// NSLog(@"violinMakerDescription loaded in segment Segment: %@", violinMakerDescription);
[self presentModalViewController:aDetailsViewController animated:YES];
[violinMakerView release];
[detailsViewController release];
[aDetailsViewController release];
break;
Я действительно не знаю, что мне нужно в DetailsViewController в тексте выше, чтобы заставить его загружать переменную .... Надеюсь, это имеет смысл для вас. Спасибо за все, что вы можете помочь или пролить свет!