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]