iOS 当我使用子视图调用父视图时,UIPageControl 不显示正确的页码

iOS UIPageControl not show correct pages number when I using subview call parent view

我有MainUIViewController(named withFlightSettingsContentViewController),它包含一个容器视图,容器视图是UIPageViewController(named withFlightSettingContainer);

但是布局必须在MainUIViewController(FlightSettingsContentViewController)上设置一个pageControl元素,所以我在MainUIViewController上拖了一个page control。

但是当容器视图(subview -FlightSettingContainer)加载时,我想设置主要viewcontroller的pageControlnumberOfPages

我在子视图上写了下面的代码-FlightSettingContainer.m 来调用父 viewcontroller 页面控制页码。

 @interface FlightSettingContainer()
 {
     FlightSettingMainViewController *parentFlightSetngVC;
 }

 @implementation FlightSettingContainer

 - (void)viewDidLoad {
     [super viewDidLoad];

 parentFlightSetngVC = (FlightSettingMainViewController*) self.parentViewController;

 [parentFlightSetngVC.pageControl setNumberOfPages:4];

 }

但是 pagecontrol 点没有变成 4 个点在主页面上 viewcontroller。

有谁知道问题出在哪里?非常感谢。

我认为当你试图访问 viewDidLoad 方法中的 parentViewController 对象时,这将 return 你为零,因为直到 FlightSettingContainer class(Child) 视图被加载到内存中未设置为 FlightSettingMainViewController(parent)child。所以使用应该在 viewDidAppear or viewWillAppear 中使用你的代码,它会起作用,因为现在它被设置为其父级的子级。

希望它能工作快乐编码:)

您调用代码的时间过早,关系尚未设置。

放在viewDidAppear方法中