菜鸟教程小白 发表于 2022-12-12 09:57:41

ios - 从 UIViewController 中删除 subview


                                            <p><p>我正在向主视图添加一个 subview ,但我无法从该 View 中删除它。</p>

<pre><code>NextViewController *nextView = [ init];

nextView.transitioningDelegate = self;
nextView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
;
nextView.view.frame = CGRectMake(724, 80, 300, 150);

UIButton *stayButton = [ initWithFrame:CGRectMake(101, 94, 90, 49)];
forState:UIControlStateNormal];
;
[stayButton addTarget:self
         action:@selector(waitForNextView)
forControlEvents:UIControlEventTouchUpInside];
;
stayButton.titleLabel.font = ;
forState:UIControlStateNormal];
</code></pre>

<p>这里我在 View 中添加了一个按钮,然后当按下按钮时它就会消失`-</p>

<pre><code>(void)waitForNextView{
    transition = NO;
    NextViewController *nextView = [ init];
    SectionViewController *sectionView = [init];
    ;
    actualSection = 0;
    ;
}
</code></pre>

<p>我试过了:</p>

<p><code>;</code></p>

<p><code>;</code></p>

<p>但我不知道我还能做什么:S</p>

<p>如果您想了解更多信息,nextView 是一个 300x100 大小的 UIViewController。我想展示它,然后在我按下按钮时将其移除,仅此而已。</p>

<p>如果有人可以帮助我,我会很棒。</p>

<p>谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您正在创建不同的引用,然后您尝试将其从其 superView 中删除,而根本没有添加。我将尝试解释:
1. 当您将 <code>nextView.view</code> 添加到 <code>self.view</code> 时,您已经创建了这样的实例</p>

<pre><code>NextViewController *nextView = [ init];
</code></pre>

<p>2。当您尝试删除它时,不是引用上面的实例,而是在 <code>waitForNextView</code> 方法中再次创建一个全新的实例,就像这样</p>

<pre><code> NextViewController *nextView = [ init];
</code></pre>

<p>然后您尝试将其删除。请注意,<code>nextView</code> 的最后一个实例尚未添加到任何地方,这就是您的代码不起作用的原因。</p>

<p>为了工作,您应该引用您添加到 <code>self.view</code> 的第一个引用。请调整您的代码如下所示</p>

<p>在你的 <code>ViewController.m</code></p>

<pre><code>@interface ViewController()
{
NextViewController *nextView;
}
</code></pre>

<p>当添加你的 <code>viewController</code></p>

<pre><code>nextView = [ init];

nextView.transitioningDelegate = self;
nextView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
;
nextView.view.frame = CGRectMake(724, 80, 300, 150);

UIButton *stayButton = [ initWithFrame:CGRectMake(101, 94, 90, 49)];
forState:UIControlStateNormal];
;
[stayButton addTarget:self
         action:@selector(waitForNextView)
forControlEvents:UIControlEventTouchUpInside];
;
stayButton.titleLabel.font = ;
forState:UIControlStateNormal];
</code></pre>

<p>最后在你的 <code>IBAction</code> 方法中</p>

<pre><code>-(void)waitForNextView{
    transition = NO;
    ;
    actualSection = 0;
    ;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 从 UIViewController 中删除 subview ,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23763662/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23763662/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 从 UIViewController 中删除 subview