Программно сделано UIImageView не работает - PullRequest
0 голосов
/ 13 июня 2011

У меня два взгляда. В первом представлении у меня есть таблица, и при выборе строки я вызываю второе представление, как показано ниже. Код для вызываемого класса также предоставляется. Но почему-то я вижу только измененный фон, а не другой UIImageView, который там есть. Может кто-нибудь, пожалуйста, помогите мне ?? Спасибо.

-(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    details.movieName2=movieName;
    self.title=@"Back";
    [[self navigationController] pushViewController:details animated:NO];    
}

Заголовок класса представления:

#import <UIKit/UIKit.h>


@interface detailedView : UIViewController {
    NSString *movieName2;
    UIImageView *myImageView;
}

@property (nonatomic, retain) UIImageView *myImageView;
@property (nonatomic, retain) NSString *movieName2;
@end

И код класса представления:

#import "detailedView.h"

@implementation detailedView

@synthesize movieName2;
@synthesize myImageView;

- (id) init {
    self=[super init];
    movieName2=@"";    
    myImageView=[[UIImageView alloc] init];

return self;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }

    return self;
}

-(void) viewDidAppear:(BOOL)animated
{
    self.view=[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    self.view.frame=CGRectMake(0, 0, 355, 615);
    self.view.backgroundColor=[[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"background-retina.png"]];

    self.title=self.movieName2;    

    [myImageView setImage:[UIImage imageNamed:@"sample.png"]];
    [myImageView setFrame:CGRectMake(5, 5, 50, 50)];
    [self.view addSubview:myImageView]; 
}

- (void)dealloc
{
    [myImageView release];
    [movieName2 release];
    [super dealloc];
}

@end

1 Ответ

0 голосов
/ 13 июня 2011

Попробуйте установить название фильма после нажатия детального контроллера

[[self navigationController] pushViewController:details animated:NO]; 
details.movieName2=[movieName retain];

UPDATE

@ Асан, что бы ты ни делал, это неправильно. Когда вы нажимаете на tableViewCell в это время, вам необходимо выделить второе представление или, если вы уже выделили detailsView, тогда зачем вы выделяете новый View в viewDidAppear. Попробуйте прокомментировать строку

self.view=[[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

и посмотрите, работает ли он. Фон работает, потому что вы устанавливаете цвет фона в самих DetailsView. Проблема заключается в выделении нового View и присвоении этого view для self.view.

...