Я пытаюсь создать popover для динамических ячеек в iOS tableview, и я немного застрял. По-видимому, раскадровки не могут использоваться с динамическими ячейками, поэтому я должен делать это программно. У меня есть нормальный класс ViewController со свойством следующим образом:Как отправить данные в popover, создаваемые программно?
SOCommandPopup.h
#import <UIKit/UIKit.h>
#import "SOCommand.h"
@protocol ReturnCommand <NSObject>
@required
-(void)getCommand:(SOCommand*)command;
@end
@interface SOCommandPopup : UIViewController <UITextFieldDelegate>
@property (nonatomic,strong)SOCommand* command;
@property (strong,nonatomic)id<ReturnCommand>delegate ;
@end
Он содержит протокол, который используется другой контроллер зрения (тот, который вызывает его), чтобы получить данные, введенные в попугай.
поповер контейнер ViewController
-(void)createPopoverWith:(NSIndexPath*)commandIndex
{
SOCommandPopup* newPopup = [[SOCommandPopup alloc]init];
editCommandPopup = [[UIPopoverController alloc]initWithContentViewController:newPopup];
editCommandPopup.popoverContentSize = newPopup.preferredContentSize;
if(commandIndex)
{
newPopup.command = [_serverModuleCommands objectAtIndex:commandIndex.row];
}
else if(!commandIndex)
{
NSLog(@"test"); //this fires, when I pass nil
newPopup.command = nil;
[editCommandPopup presentPopoverFromBarButtonItem:self.btn_addButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
}
SOCommandPopup
класс будет строить себя на основе command
собственности посланного к нему. Поэтому я хочу, чтобы в контейнере вызывается [self createPopoverWith:someCommand]
. Однако я не знаю, как установить его свойство, так как это всего лишь UIPopoverController
, а не SOCommandPopup
.
Любая помощь будет очень признательна, спасибо!
~ Carpetfizz
EDIT: Ради тестирования я передаю nil
в createPopoverWith:
Thank you soo much! Это сработало отлично! – Carpetfizz