ios - 使用 xib 子类化 UICollectionViewController
<p><p>我正在尝试创建一个自定义 <code>UICollectionViewController</code> 子类。</p>
<p>我使用 Xcode 的向导创建了它:</p>
<p> <a href="/image/GOnma.png" rel="noreferrer noopener nofollow"><img src="/image/GOnma.png" alt="Screenshot 1"/></a> </p>
<p>点击 <code>Finish</code> 后,我得到了这个 <code>.xib</code> 文件:</p>
<p> <a href="/image/OGGGD.png" rel="noreferrer noopener nofollow"><img src="/image/OGGGD.png" alt="Screenshot 2"/></a> </p>
<p>当我尝试从另一个类中调用它时:</p>
<pre><code>MyCollectionViewController *myCollectionViewController = ;
;
;
</code></pre>
<p>我收到此错误:</p>
<pre><code>UICollectionView must be initialized with a non-nil layout parameter
</code></pre>
<p>如果我使用:</p>
<pre><code>MyCollectionViewController *myCollectionViewController = [ initWithCollectionViewLayout:];
</code></pre>
<p>它不会崩溃,但有一些问题:</p>
<ol>
<li>如果 <code>.xib</code> 文件中已经存在 <code>CollectionViewLayout</code>,为什么还需要它?</li>
<li>我不想在 <code>MyCollectionViewController</code> 之外创建布局;在这种情况下,子类化的目的是什么?</li>
<li>整个 View 显示为空白。</li>
</ol></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>如果在 xib 中指定了 ViewController 的 UI,那么您必须通过调用 <code>[ initWithNibName:@"MyCollectionViewController"inBundle:]</code> (或者你得到你的 bundle )。当您使用此构造函数时, ViewController 的导出会正确连接,并且布局是根据 xib 中的内容设置的。</p></p>
<p style="font-size: 20px;">关于ios - 使用 xib 子类化 UICollectionViewController,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/33921256/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/33921256/
</a>
</p>
页:
[1]