我有一个ViewController,它添加到其他子视图中,这些子视图包含子视图uiviewControllers
所以它是这样的:
mainViewController
|
v---------v
subVC1 subVC2
Run Code Online (Sandbox Code Playgroud)
subVC1或subVC2都没有触发viewDidAppear/viewWillAppear吗?主视图控制器正在app delegate中创建,并且视图也添加到窗口中.
这是一个显示我的问题的xcode项目:http://www.qfpost.com/download.do?get = 92f03538907e72665ea794d98ff8392b
搜索这个我没有幸运,所以我们走了;)
我有一个UIViewController定制UINavigationBar,推动另一个UIViewController作为子视图.
除非单击子视图上的后退按钮,否则一切正常.预览(第一个)视图正确显示,但不是动画.动画UINavigationBar是正确的,只有视图立即切换.
使用for 调用- (void)viewWillAppear:(BOOL)animated第一个函数.这只发生在我使用iOS 5进行测试时,而不是使用iOS 4进行测试.UIViewControllerNOanimated
有谁知道如何解决这一问题?
谢谢你的帮助!汉纳斯
更新1
我刚刚删除了所有自定义代码并且只使用了普通代码UINavigationBar(所以没有额外的设置),它仍然不适用于iOS 5.这是我在第一个ViewController中用来推送第二个ViewController的代码:
[self.navigationController pushViewController:secondViewController animated:YES];
正如我已经提到的 - 当我在第二个视图的导航栏中单击后退按钮时,第一个视图立即显示而没有动画.
任何帮助,将不胜感激!谢谢!
更新2
我觉得我越来越接近这个问题,但仍然没有解决方案:
我只是添加了一个UINavigationController我打电话的自定义[super popViewControllerAnimated:animated].正确调用此get(动画为YES),但viewWillAppear第一个UIViewController获取NO作为动画的值...
iphone uinavigationbar popviewcontroller viewwillappear ios5
我习惯把任viewWillAppear和viewDidLoad,它的确定,直到知道了.但是我认为应该有一些规则来指导何时投入viewWillAppear和何时投入viewDidLoad?
对不起,我是iOS开发人员的新手.
我有一个UITableView从单个XiB笔尖拉出单元格的设置.我在笔尖中创建了一个开/关开关,我试图保存开关的状态以获得viewWillDisappear我所拥有的单元格数量.(确切地说是6个细胞).
如何循环遍历所有单元格并保存此信息?
我在我的UIViewController中尝试了这个来获取一个单元格的信息:
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
UITableView *tv = (UITableView *)self.view;
UITableViewCell *tvc = [tv cellForRowAtIndexPath:0];
}
Run Code Online (Sandbox Code Playgroud)
它给出了错误"程序接收信号:"EXC_BAD_INSTRUCTION".
我怎么能做到这一点?
我需要根据方向更改视图的图像背景.为此,我使用statusBarOrientation方法viewWillAppear:
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
UIInterfaceOrientation currentOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if (UIInterfaceOrientationIsPortrait(currentOrientation)) {
NSLog(@"PORTRAIT");
} else if (UIInterfaceOrientationIsLandscape(currentOrientation)) {
NSLog(@"LANDSCAPE");
}
}
Run Code Online (Sandbox Code Playgroud)
问题是控制台总是显示PORTRAIT,即使iPad处于横向模式.相同的代码viewDidAppear工作正常,但为时已晚,用户可以看到图像的变化.这让我觉得statusBarOrientation的正确状态仍然不可用viewWillAppear,但我已经读过其他一些问题,这段代码应该在那里工作.
我在iOS 5.0上面临我的自定义视图控制器子类的奇怪行为.我在我的iPad应用程序中没有使用标准导航控制器等,但我自己也提供了所有视图控制器 - 这就是我需要手动调用-viewWillAppear和viewDidAppear方法的原因.
从iOS 5.0开始,似乎在将视图控制器的视图添加为子视图时,会在视图的视图控制器实例上自动调用这些方法.这意味着在我的情况下这些方法被调用两次.
有什么建议?除了创建我自己的视图生命周期方法和重写整个应用程序?
非常感谢!
当应用程序变为活动状态时,我正在使用UIApplicationDidBecomeActiveNotification刷新我的tableview.我的问题是,在我的ViewWillAppear中,我还调用了一个刷新该表数据的方法.
这导致在应用程序启动时刷新表两次.在应用程序最初启动时,如何让其中一个不要触发?刷新表有一些密集的网络和本地数据处理..所以我真的希望o只执行一次此操作.
谢谢.
我试图在某个视图上隐藏我的导航控制器的后退按钮(使用故事板)
我试图隐藏栏后退按钮覆盖ViewWillAppear,但似乎没有发生.
这是代码:
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
this.NavigationController.NavigationItem.SetHidesBackButton (true, true);
}
Run Code Online (Sandbox Code Playgroud) 我在iAd/AdMob广告中放置了我的代码...
-(void)viewWillAppear:(BOOL)animated{}
Run Code Online (Sandbox Code Playgroud)
广告的工作方式非常好,就像我现在在所有iOS设备上使用它们一样.当我将我的iPhone连接到Xcode并点击Product -->Analyze消息时...
子类'iPhoneSIX'中的viewWillAppear:实例方法UIViewController缺少一个[super viewWillAppear:]调用
我偶然偶然发现了这Product-->Analyze件事.[super viewWillAppear]即使所有设备上的所有设备都能正常运行,我是否真的需要添加.如果我不注意Product-->Analyze问题导航器,Apple会拒绝我的应用吗?
还有,......
[super viewWillAppear:YES];
Run Code Online (Sandbox Code Playgroud)
这叫做什么呢?
所以我有一个标签栏控制器,当我选择进入第二个标签时,它会将我带到一个表视图控制器.我有它设置,以便当viewWillAppear它动画细胞.我遇到的问题是,我第一次进入该视图,一切都是静止的,但如果我去另一个选项卡,然后回来,一切都完美的动画.
如何在第一次访问选项卡时将其设置为动画?
我没有包含代码,因为我认为它不会有助于回答这个问题.
编辑*我可以根据需要多次转到选项卡,它会每次都有动画,但永远不会在第一次加载应用程序时生成动画.
viewwillappear ×10
ios ×6
iphone ×4
addobserver ×1
analyzer ×1
animation ×1
c# ×1
ios5 ×1
ipad ×1
objective-c ×1
swift ×1
uistatusbar ×1
uitableview ×1
viewdidload ×1
xamarin ×1
xamarin.ios ×1
xcode ×1