UIB кнопка нажала, чтобы обменяться с другим XIB - PullRequest
0 голосов
/ 16 апреля 2010

У меня есть UIButton в моем MainWindow.xib

Когда я нажимаю кнопку, я хочу поменять вид. Как мне это сделать?

Я также хочу передать некоторые данные между представлениями (например, настройки цвета и строки)

Любой пример кода ИЛИ ссылки, где я могу найти мой ответ, будет очень полезен.

1 Ответ

1 голос
/ 16 апреля 2010

alloc контроллер временного просмотра и вызов initWithNibName:. Затем позвоните [self presentModalViewController:(the view controller you just made) animated:YES]; (или НЕТ). Чтобы передать данные, создайте метод на другом контроллере представления, добавьте его в свой файл .h, а затем в свой файл .m для первого контроллера представления, импортируйте его и сделайте его классом и вызовите [theviewcontrollermadeearlier yourmethod:argument :argument etc.];, например:

MyFirstViewController.h:

#import <UIKit/UIKit.h>
#import "MySecondViewController.h"
...
@class MySecondViewController
...

MyFirstViewController.m:

...
MySecondViewController *tempVC = [[MySecondViewController alloc] initWithNibName:@"MySecondView"];
[self presentModalViewController:tempVC animated:YES];
[tempVC passDataWithString:@"a string" andColor:yellowcolor];

MySecondViewController.h:

@interface MySecondViewController : UIViewController {
...
}
- (void)passDataWithString:(NSString *)passedString andColor:(UIColor *)passedColor;

MySecondViewController.m:

...
- (void)passDataWithString:(NSString *)passedString andColor:(UIColor *)passedColor {
// Do something
}

EDIT: Чтобы кнопка сработала, в заголовочном файле контроллера вашего первого представления добавьте IBOutlet IBAction *buttonPressed; в раздел @interface, а затем между } и @end добавьте - (IBAction)buttonPressed;
Зайдите в Interface Builder и подключите IBAction к кнопке.
Затем, в основном файле вашего первого контроллера представления, добавьте это:

- (IBAction)buttonPressed {
    // The code to execute when pressed
}
...