我正在研究iPhone应用程序。我正在使用Storyboard。
我希望将一个对象附加到NavController,以处理显示表视图的窗口底部的按钮栏的可见性。
我创建了自己的UINavigationDelegate; MyNavigationControllerDelegate。
我在UIBuilder中创建了一个NSObject,并更改了它的类MyNavigationControllerDelegate。然后将其作为UINavigationController的委托附加。
出于某种原因,MyNavigationControllerDelegate正在被取消分配。我本以为作为委托就足以保留对它的引用并防止重新分配,但似乎并非如此。
有关如何防止其被解除分配的任何建议?每次加载视图时,我是否必须将其重置为委托?
答案 0 :(得分:2)
UINavigationController的delegate
属性声明为assign
,而不是retain
或strong
(请参阅here)。代理通常声明为weak
或assign
,这意味着分配属性不会导致UINavigationController
增加代理的引用计数,并且您需要另一个对象来保存强引用它(可能是你的RootViewController)。