Я использую контроллер Split View для iPad. Я пытаюсь отправить смену ярлыка в контроллер детализации из контроллера rootSending Controll, когда кнопка нажата. Я прочитал учебники по протоколам и придумал код ниже. Когда я нажимаю кнопку на rootSending, ничего не происходит с меткой на detailReceiving. Нужно ли мне что-то делать с помощью splitViewContoller, чтобы метка обновлялась? Должна ли функция detailReceive изменять метку, когда она получает сообщение?UISplitViewController с использованием делегата для передачи строки
rootSending.h
#import <UIKit/UIKit.h>
@protocol TestDelegate <NSObject>
-(void)tester:(NSString*)testString;
@end
@interface rootSending : UIViewController
@property (nonatomic, assign) id <TestDelegate> delegate;
@end
rootSending.m
#import "rootSending.h"
@implementation rootSending
@synthesize delegate;
-(void)viewDidLoad{
}
-(IBAction)buttonPressed:(id)sender{
[delegate tester:@"button pressed"];
}
@end
detailReceiving.m
#import "detailReceiving.h"
#import "rootSending.h"
@interface detailReceiving()<TestDelegate>{
IBOutlet UILabel *label2;
}
@end
@implementation detailReceiving
-(void)viewDidLoad{
rootSending *obj = [rootSending alloc];
obj.delegate = self ;
}
-(void)tester:(NSString *)testString{
label2.text = testString;
}
@end
Отлично! Хороший совет по распределению. Я просто знал, что не хочу его начинать. – iDev
Что делать, если раскадровка - это splitview -> контроллер навигации -> вид? Это не работает: xmlListofItems * obj = (xmlListofItems *) self.splitViewController.navigationController.viewControllers.firstObject; – iDev
@ iDEV, вам действительно нужно подумать о своей структуре контроллера и о том, как ваши контроллеры связаны друг с другом - это очень важные базовые знания о программировании на iOS, которые вы должны изучить. Я обновил свой ответ, чтобы показать вам, как это сделать, но вам нужно научиться изучать этот материал. – rdelmar