Tag: viewdidappear

viewDid出现在代码混乱与布局

我遇到了一些严重的奇怪的情况。 我有一个代码看起来像这样: – (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; return self; } – (void)viewDidLoad { [super viewDidLoad]; } – (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; } 与视图控制器看起来像这样: 奇怪的是,当我只是添加 – (void)viewDidAppear:(BOOL)animated { } 即使没有任何动作,它完全混淆视图控制器的布局,并使其看起来像这样: 我没有添加任何其他的代码行,然后只是为viewDidAppear空头。 删除时,布局是好的。 这里发生了什么?

表视图单元格子视图的框架更改将不会发生,直到视图确实出现

我想要更改一个UITableViewCell的子视图,当它在cellForRowAtIndexPath中设置时,使用下面的代码: cellSubView.center = CGPointZero 打印框架的坐标显示框架更新成功,但视图仍显示在界面生成器中给出的位置。 用下面的代码重写viewDidAppear函数可以解决这个问题: override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) self.tableView.reloadData() } 但是这会导致闪烁:当我改变它的一个单元格的子视图的位置时,表格视图已经出现了。 在视图出现之前如何改变框架?

Receiver(<ViewController:>)没有标识符为'showAlerting'的segue

segue运行,但应用程序与上述错误崩溃。 为什么我得到这个no segue with identifier消息的no segue with identifier ? 我定义了segue标识符。 这是viewDidAppear方法 – (void)viewDidAppear:(BOOL)animated { [self performSegueWithIdentifier:@"showAlerting" sender:self]; } – (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"showAlerting"]) { NSLog(@"Logging showAlerting"); } } 我得到了这些日志消息 2015-03-28 20:04:33.025 xxxx[3684:741007] Logging showAlerting 2015-03-28 20:04:33.046 xxxx[3684:741007] xxxxxxxx,, 2015-03-28 20:04:33.111 xxxx[3684:741007] lat: xxx 2015-03-28 20:04:33.112 xxxx[3684:741007] lon: xxx 2015-03-28 20:04:33.798 xxxx[3684:741007] […]

UIScrollView不能正确恢复

我有一个滚动视图,它的属性是在viewDidAppear中设置的。 现在当我第一次进入滚动查看时,没有任何问题。 不过,我有分配给UINavigationController的button。 所以,当我按下其中的一个UINavigationController打开,当我closures导航控制器,ScrollView不能正确恢复。 它基本上与之前按下的button位置alignment屏幕的中心。 所以,如果我试图向上滚动它不。 我已经尝试在我的viewDidAppear使用这个: scrollView.center = CGPointMake(scrollView.contentOffset.x, scrollView.contentOffset.y); 哪个不好用。 我该如何解决这个问题? 我正在使用iOS6.1

unit testing不调用viewDidAppear方法

我正在使用Specta来创build一些testing,但我似乎无法得到这个基本的通过。 该应用程序本身工作正常,但这个testing不会通过。 视图控制器 – (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; [self showLogin]; } – (void)showLogin { [self presentViewController:[ETLoginVC new] animated:NO completion:nil]; NSLog(@"PresentedVC: %@", [self.presentedViewController class]); } 这个日志: PresentedVC: ETLoginVC 眼镜 #import "Specs.h" #import "ETLoadingVC.h" #import "ETLoginVC.h" SpecBegin(ETLoadingVCSpec) describe(@"ETLoadingVC", ^{ __block ETLoadingVC *loadingVC; beforeEach(^{ loadingVC = [[ETLoadingVC alloc] initWithUserDefaults:nil]; }); afterEach(^{ loadingVC = nil; }); describe(@"no current user […]

iOS / Swift:viewDillLoad和viewWillAppear之间的函数我应该查询一个数据库?

在我的应用程序,由Swift和XCode 6开发,我必须查询数据库,并根据该答案,然后我会修改和显示一些UI小部件,在我的情况下,这是三个彩色button,我必须改变他们的文字它由一个数字组成。 这些button表示分配给用户的任务数量,根据任务的优先级,它们具有不同的颜色。 那么,我应该在viewDidLoad()函数中查询数据库,然后根据回答在viewWillAppear中更改button的文本? 是对的吗?

UIViewController调整自己viewWillAppear和viewDidAppear之间?

我的项目中有一个非常奇怪的错误。 我有一个UIScrollView作为我的主要观点。 在里面,我有一个UIViewController (而不是UITableViewController ),它有一个UITableView实例variables,以及一些杂项UIButtons 。 我已经把视图控制器的视图框架设置为CGRectMake(0, 64, 320, 388) ,因为我有一个标签栏上面(这是不是function呢)。 起初,它工作得很好,看起来不错,但一旦我提出和解雇一个modalViewController (因此重新加载UIViewController ,我相信),它推动UIViewController的视图到屏幕的顶部(默认设置为CGRectMake(0, 0, 320, 460) wantsFullScreenLayout CGRectMake(0, 0, 320, 460) ,但是因为我把wantsFullScreenLayout设置为NO ,所以现在将它设置为CGRectMake(0, 0, 320, 388) 。 我已经将这个问题追踪到viewWillAppear和viewDidAppear之间的某处。 这是我的确切日志解散modalViewController : 2011-05-06 11:08:39.974 Campus [1570:207] Frame是0.000000,64.000000,320.000000,388.000000(viewWillAppear) 2011-05-06 11:08:40.378 Campus [1570:207] Frame是0.000000,0.000000,320.000000,388.000000(viewDidAppear) 正如你所看到的, viewWillAppear的框架是好的,但不是viewDidAppear 。 我已经做了以下事情来尝试修复它: – 在loadView , viewDidLoad , viewWillAppear和viewDidAppear设置所需的框架。 – 将我的wantsFullScreenLayout设置为NO 。 – […]

iPhone / iOS中的viewDidAppear,viewDidLoad之间的区别?

底线是,我一直在一个应用程序,似乎如果我把一个UIAlert在viewDidLoad ,它被调用两次(从UIImagePickerController的委托方法)。 如果我把它放在viewDidAppear ,它会被调用一次。 我查看了文档,但它只是让我困惑。

viewDidAppear for UITableViewCell

我通常使用viewDidAppear方法在视图完成后做一些UI的东西,我用这种方法在各种情况下,它是非常有用的,但是,我需要做一些UITableViewCell上的UI更改出现后,是否有在SDK中的任何可用的方法做类似的工作像viewDidAppear但对于UITableViewCell ? PS willDisplayCell在我的情况下没有工作,我需要像didDisplayCell如果它真的存在。

仅在首次发布时显示视图 – Swift 3

我在我的应用程序中实施了条款和条件视图,用户必须接受他们才能继续,当他们接受他们时,他们不必再通过条款和条件视图。 我跟着一个关于如何集成UserDefaults并在本地存储值的教程,如果有人确实接受这些条款。 但是我坚持把它实现到根视图控制器。 特别贴在我的viewDidAppear函数。 if和else语句中的含义是什么? class TermsAndConditionsViewController: UIViewController, UITextViewDelegate { @IBOutlet weak var termsTextView: UITextView! { didSet { termsTextView.delegate = self } } @IBOutlet weak var acceptButton: UIButton! { didSet { acceptButton.isHidden = true } } func scrollViewDidScroll(_ scrollView: UIScrollView) { acceptButton.isHidden = scrollView.contentOffset.y + scrollView.bounds.height < scrollView.contentSize.height } override func viewDidAppear(_ animated: Bool) { […]