Вопрос

У меня возникли трудности с отображением очень простого представления.Это представление имеет собственный контроллер представления, которым управляет переключаемый контроллер представления.В XIB есть один компонент UIViewController с установленным свойством Image.Контроллер представления выглядит следующим образом:

ИнструкцииViewController.h

#import <UIKit/UIKit.h>

@interface InstructionsViewController : UIViewController {

}

@end

InstructionsViewController.m

#import "InstructionsViewController.h"

@implementation InstructionsViewController



- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
    // Release anything that's not essential, such as cached data
}

- (void)dealloc {
    [super dealloc];
}


@end

Я также установил для свойства класса владельца файла XIB значение InstructionsViewController, а для владельца файла, удерживая клавишу Ctrl, перетащил его на значок «Просмотр» и выбрал «Просмотр» во всплывающем меню.

Код для отображения представления:

- (void) showInstructions
{
    //Lazy load the instruction view.
    if (self.instructionsViewController == nil)
    {
        InstructionsViewController *viewController = [[InstructionsViewController alloc]
                                                initWithNibName:@"InstructionsView" 
                                                bundle:nil];
        self.instructionsViewController = viewController;
        [viewController release];
    }

    [self.view insertSubview:viewController.view atIndex:0];
}

Мой контроллер представления, который анимирует различные представления при их переключении, без проблем загружает и отображает три других представления.Это ему просто не нравится.

Я уверен, что пропустил что-то простое, но по какой-то причине я не могу заставить это работать.Есть ли у кого-нибудь указатели?

Спасибо,

Стив

Это было полезно?

Решение 4

Хорошо, я наконец решил это!

Проблема заключалась в том, что что-то в XCode или Interface Builder не согласовывалось с файлом PNG, который я указал для элемента управления «Просмотр изображения» в IB.Я пробовал переименовывать, переопределять и т. д.но безрезультатно.

В конце концов мне пришлось удалить изображение и повторно скопировать его из исходного местоположения.Затем я повторно указал его в Image View, собрал и запустил.Теперь это работает.

В мире снова все хорошо.

Спасибо тем, кто нашел время прочитать и предложить помощь.Я очень ценю это!

Стив

Другие советы

У меня только что было то же самое.Закончилось удалением UIImageView, размещением нового, затем повторной привязкой, и все заработало.Похоже где-то коррупция.

Даже не совсем уверен, как это компилируется.Вы вставляете подпредставление за пределы нулевой проверки, где viewController выходит за рамки.

Вы, вероятно, хотите сделать

[self.view insertSubview:self.instructionsViewController.view atIndex:0];

Вы это проверили? showInstructions вызывается, установив там точку останова?Еще одна вещь, которую нужно проверить, это то, что вы вставляете Instructions просмотр внизу вашего Z-порядка, чтобы он был позади всех остальных элементов.Попробуйте использовать:

[self.view addSubview:self.instructionsViewController.view];

Это добавит его в начало z-порядка.Если это не сработает, попробуйте также:

[self.view setNeedsLayout];

и/или:

[self.instructionsViewController.view setNeedsLayout];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top