gpt4 book ai didi

ios - 如何将数据发送到以编程方式创建的弹出窗口?

转载 作者:行者123 更新时间:2023-11-29 03:23:30 24 4
gpt4 key购买 nike

我正在尝试为 iOS 表格 View 中的动态单元格创建一个弹出窗口,但我有点卡住了。显然, Storyboard segues 不能与动态单元格一起使用,所以我必须以编程方式执行此操作。我有一个普通的 ViewController 类,其属性如下:

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

它包含一个由另一个 View Controller (调用它的 View Controller )使用的协议(protocol),以获取在弹出窗口中输入的数据。

弹出容器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

非常感谢任何帮助,谢谢!

~地毯嘶嘶声

编辑:为了测试,我将 nil 传递给 createPopoverWith:

最佳答案

我相信只有一种方法可以以编程方式实例化您正在使用 Storyboard 设计样式的 View Controller (您说过您正在尝试这样做)。

SDCommandPopup *newPopup = [self.storyboard instantiateViewControllerWithIdentifier:@"some_identifier"];
newPopup.command = command;
// then present the viewcontroller however you want

下图显示了您在 Storyboard中添加标识符的位置。

storyboard example

关于ios - 如何将数据发送到以编程方式创建的弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20778712/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com