我尝试使用storyboard instantiateViewControllerWithIdentifier,它工作正常,但我需要委托方法所以我在打开时添加下面的代码 来自FirstViewController的SecondViewController,
SecondViewController *svc=[[SeconViewController alloc] init];
svc.delegate=self;
[self.navigationController pushViewController:svc animated:YES];
但它会打开黑屏。非常感谢任何排序帮助。谢谢。
secondViewController.h文件
@protocol sendDataToAudioDelegate <NSObject>
-(void)sendData:(NSMutableArray *) data;
@end
@interface AudioSavedFilesViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (strong, nonatomic) IBOutlet UITableView *fileTable;
@property (strong, nonatomic) NSMutableArray *selectedIndices;
@property (strong, nonatomic) AVAudioPlayer *audioplayer;
- (IBAction)selectedFiles:(id)sender;
@property (nonatomic,assign)id <sendDataToAudioDelegate> delegate;
@end
答案 0 :(得分:1)
下面:
SecondViewController *svc= [self.storyboard instantiateViewControllerWithIdentifier @"identifier"];
svc.delegate=self;
您正在尝试设置SecondViewController的委托属性。但是这样做时会出现错误:
在对象类型&#39; UIViewController&#39;
上找不到属性委托
建议您的SecondViewController类没有名为delegate的属性。因此你需要:
@interface SecondViewController
@property (nonatomic, assign) id delegate;
@end
答案 1 :(得分:0)
原因是您正在创建SecondViewController
的全新实例并将其推送到navigationController
。您根本没有使用storyboard
场景,因此,您添加和连接的所有UI
元素都无法正常工作。您需要使用instantiateViewControllerWithIdentifier
你仍然可以使用delegate
,因为你这样做:
SecondViewController *svc= [self.storyboard instantiateViewControllerWithIdentifier @"identifier"];
svc.delegate=self;
[self.navigationController pushViewController:svc animated:YES];
修改强>
看完你的评论后......
我认为你没有在故事板中设置场景来使用SecondViewController
。