IOS изменить фон при нажатии кнопки - PullRequest
0 голосов
/ 14 августа 2011

У меня пока есть только компоновщик интерфейса

Мне не ясен синтаксис для ссылки на все эти элементы из макета

Я знаю, что IBOutlet нужно где-то использовать, но мне нужно немного больше держаться за то, что делает эта цель C. Ничто из того, что я прочитал, не говорит мне точно, почему некоторые объявления начинаются с +, а другие с -

Что я хочу сделать, так это нажать кнопку в макете, чтобы всплыло модальное представление и изменить фон на всем макете.

поэтому первый шаг - ссылки на все эти элементы, которые я сделал в перо. Помогите? (или опубликуйте ссылку на более интуитивные учебники, о которых вы знаете)

Ответы [ 2 ]

1 голос
/ 14 августа 2011

Итак, вы, вероятно, хотите создать IBOutlet для фонового представления. Может быть, это UIImageView, который вы можете установить его свойство изображения на основе того, что пользователь выбирает в модальном представлении. Для этого вы просто объявите UIImageView, который у вас есть в вашем файле IB

UIImageView *imageView;

и затем объявить его как свойство

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

и синтезируйте его в вашем .m файле

@synthesize imageView;

Не забудьте выпустить его, если вы не используете ARC.

Затем вы можете открыть конструктор интерфейсов, и если вы щелкнете по Владельцу файла вашего контроллера и перейдете к инспектору соединений, то увидите, что там есть новое соединение для imageView. Просто перетащите это соединение в ваш UIImageView в файле IB и все. Теперь в вашем коде есть ссылка, которая подключается к вашему UIImageView в IB.

Это позволит вам установить UIImageView в вашем коде, набрав что-то вроде

self.imageView.image = [UIImage imageNamed:theNameTheUserJustPicked];

Чтобы получить модальное представление, вам нужен IBAction для запуска метода в вашем коде, поэтому объявите один из них в своем .h файле вашего основного пера.

- (IBAction)displayViewBackgroundChooser;

и затем определите его в вашем файле .m.

- (IBAction)displayViewBackgroundChooser {
    //present your new view on screen here
}

Затем вернитесь в конструктор интерфейсов и снова нажмите на владельца файла. Вы должны увидеть его там в инспекторе соединений, а затем можете подключить его, например, к кнопке, которая вызовет этот метод.

Надеюсь, это поможет прояснить ситуацию с IBOutlets и IBActions.

1 голос
/ 14 августа 2011

Вы можете заставить ваши элементы пользовательского интерфейса, созданные в IB, взаимодействовать с вашим кодом с помощью IBOutlets и IBActions.

В вашем случае я бы назначил действие кнопке, чтобы оно былосрабатывает при нажатии кнопки;действие откроет модальное представление, и вы можете изменить фон этого представления в методе viewDidLoad соответствующего контроллера.

Здесь вы найдете видеоурок о добавлении розетки,И здесь , то же самое с действиями.

По поводу ваших сомнений в + и -, - идентифицирует нормальный метод, определенный в классе;+ определяет метод класса, т. Е. Метод, который вы можете вызывать для класса напрямую, без необходимости сначала создавать его экземпляр.Взгляните на эту ТАКУЮ статью , чтобы узнать больше.

...