好的,所以我在这里有一个有趣的情况:
我有一个日历视图,这个视图没有导航栏,所以我创建了另一个视图来包含日历,并在该视图中添加了一个导航栏。
所以现在我有 2 个视图显示一个导航栏和一个日历。
导航栏有一个应该显示“插入”控制器的按钮,但在此之前,它必须将日历中的@property 设置为“插入”视图控制器。
所以总结一下:
外部视图控制器 IBAction ->“插入”上的内部日历设置属性 -> 内部日历存在“插入”。
这是代码:
ViewControllerCalendarContainer.h
#import <UIKit/UIKit.h>
@interface ViewControllerCalendarContainer : UIViewController
- (IBAction)SeguqInsert:(id)sender;
@end
ViewControllerCalendarContainer.m
#import "ViewControllerCalendarContainer.h"
#import "CalendarMonthViewController.h"
...
- (IBAction)SeguqInsert:(id)sender {
CalendarMonthViewController *controller = [[CalendarMonthViewController alloc] initWithNibName:nil bundle:nil];
[controller SegueInsert];
}
CalendarMonthViewController.h
@property (nonatomic, strong) NSDate *dateSelected; // data to send to Insert View Controller
- (void)SegueInsert; // the present "Insert View Controller Method"
CalendarMonthViewController.m
#import "CalendarMonthViewController.h"
#import "ViewControllerInsert.h"
- (void)SegueInsert {
NSDate *dateUserSelected = self.dateSelected;
ViewControllerInsert *controller = [[ViewControllerInsert alloc] initWithNibName:@"ViewControllerInsert" bundle:nil];
controller.dateSelected = dateUserSelected; // set property in Insert
[self presentViewController:controller animated:YES completion:nil]; // present
}
单击时出现运行时错误:
其视图不在窗口层次结构中!
PS:我无法通过 Storyboard 进行 Segue,因为它使用了另一个实例,并且应该设置的属性没有设置。