Есть несколько способов сделать это, вы можете опубликовать уведомление, содержащее объект с выбранной информацией, на которую подписывается ваш начальный вид.Вы разместите это уведомление в тот момент, когда в вашем случае была выбрана эта опция.
Другим вариантом является использование шаблона делегата. Когда вы выбираете эту опцию, вызывается метод делегата для открытия вторичного представления, когда вызывается метод делегата.
Чтоесли вы хотите держаться подальше, предоставьте вашему вторичному виду ссылку на начальный вид, это сделает вашу иерархию видов жесткой, и ваш вторичный вид больше не сможет использоваться где-либо еще без этого же начального вида.
ДляДалее углубимся в пример делегата, который я выбрал бы.
Определите ваш ColorPickerViewController
@interface ColorPickerViewController
@property (nonatomic, assign) id delegate;
// other supporting properties
@end
@protocol ColorPickerViewControllerDelegate <NSObject>
@optional
- (void) colorWasPicked:(UIColor *)pickedColor;
@end
@implementation ColorPickerViewController
@synthesize delegate;
- (void)colorSelected { // some method that is called when the user selects a color
if([self.delegate respondsToSelect(@selector(colorWasPicked:)]) {
[self.delegate colorWasPicked:selectedColor];
}
}
@end
И тогда ваш контроллер начального вида создаст экземпляр ColorPickerViewController и назначит себя в качестве делегата
@interface OpeningViewController : UIViewController <ColorPickerViewControllerDelegate> {
}
@implementation OpeningViewController
// implement the delegate method you wrote
- (void) colorWasPicked:(UIColor *)pickedColor {
self.userSelectedColor = pickedColor;
}
Очевидно, что это не вырезанный и вставленный код, но он должен направить вас в правильном направлении, могут быть некоторые ошибки, но я думаю, что по большей части это должно быть ясно.