2014-01-11 4 views
0

Я пытаюсь передать значение UIImage в UIImageView внутри представления, которое я добавляю в качестве подвид.Передача UIImage в UIImageView SubView?

Вот что я делаю в моем mainViewController:

- (IBAction)selectStore:(id)sender { 

    StoreSelectorViewController *SSVC = [[StoreSelectorViewController alloc] initWithNibName:@"StoreSelectorViewController" bundle:nil]; 
    [self.navigationController addChildViewController:SSVC]; 
    [SSVC.backgroundView setImage:[UIImage imageNamed:@"CoolBG.png"]]; 
    [self.view.window addSubview:SSVC.view]; 
} 

я сделал следующее в моем файле StoreSelectorViewController.h:

@property (nonatomic, retain) IBOutlet UIImageView *backgroundView; 

И я также связал его в файле XIB.

Все загружается, за исключением того, что я никогда не получаю значение UIImage. Благодаря

+0

Является ли 'selectStore:' вызов? Вы настроили его как 'IBAction', но уверены ли вы, что вы правильно его подключили в Interface Builder? Возможно, в сообщении должно быть указано утверждение NSLog', чтобы убедиться, что оно вызвано. – greg

+0

Эй, Грег! Да, на самом деле у меня на самом деле есть кнопка в StoreSelectorViewController, которая появляется на экране, а затем, когда я нажимаю на нее, она удаляет весь вид. Таким образом, похоже, что проблема связана с uiimageview. Позвольте мне попробовать несколько NSLogs. – KingPolygon

+0

Кроме того, это выглядит несколько странно. Вы добавляете subview в 'UIWindow', а не в текущую' UIView', но вы также добавляете другой 'UIViewController' в' UINavigationController'. Вы уверены, что не имеете в виду '[self.navigationController pushViewController]' и не добавляете subview или CVC? – greg

ответ

0

Иногда используют это не похоже на работу:

[SSVC.backgroundView setImage:[UIImage imageNamed:@"CoolBG.png"]]; 

Так вместо этого я использовать эту версию две строки, в слегка dif't порядке, установив изображение, перед отображением его родителя (SSVC) :

StoreSelectorViewController *SSVC = [[StoreSelectorViewController alloc]  initWithNibName:@"StoreSelectorViewController" bundle:nil]; 
UIImage *img = [UIImage imageNamed:@"CoolBG.png"]; 
[SSVC.backgroundView setImage:img]; 
[self.navigationController addChildViewController:SSVC]; 
[self.view.window addSubview:SSVC.view]; 
+0

Спасибо Fluffhead, к сожалению, это тоже не сработало. – KingPolygon

+0

См. Комментарий/править выше, давайте попробуем создать их в другом порядке. – Fluffhead

+0

Те же результаты:/thanks хотя! – KingPolygon

0

проблема заключается в этой строке [self.view.window addSubview:SSVC.view]; так просто заменить строку ниже: -

также вы хотите добавить imageview как subview от view. Так что используйте ниже код, где backgroundViewimageview является: -

[SSVC.view addSubview:SSVC.backgroundView]; 
[self.view addSubview:SSVC.view];. 
+0

Это на самом деле его разрывает. Спасибо хоть! – KingPolygon

+0

Я имею в виду после добавления этой строки кода. вы должны добавить это [self.view addSubview: SSVC.view] ;. Ты пробовал?? –

+0

Я обновил код. Следуйте за этим –

0

Вы действительно не должны называть addChildViewController независимо, это не то, что вы хотите. Вы также не используете UIViewController, просто украв свой view. Вполне возможно, что из-за этого UIViewController не был полностью создан, так как он не представлен (viewWill/Did) методы никогда не вызываются, и поэтому backgroundView, вероятно, nil.

+0

Что вы посоветуете? Я пытаюсь создать пользовательский вид с помощью xib. Благодаря! – KingPolygon

+0

@ user1886754, также вы пытались добавить backgroundView на свой взгляд ??? –

+0

http://stackoverflow.com/questions/7814928/how-to-load-a-xib-file-in-a-uiview – greg

Смежные вопросы