Dealing with two common problems in iOS development

Dealing with two common problems in iOS development

[[134199]]

(I) “Unknown class XXViewController in Interface Builder file.” Problem Solution

I recently wrote a XXViewController class in a static library, and then specified the xib class as XXViewController in the main project's xib. When the program was running, the following error was reported:

  1. Unknown class XXViewController in Interface Builder file.

I encountered this problem before, but I don’t remember it clearly, so I started looking for the answer on stackoverflow again.

In fact, this problem has nothing to do with Interface Builder. The most direct reason is that the related symbols are not loaded from the static library. The solution to this problem is to add the two flags "-all_load -ObjC" in the "Build Setting" -> "Other Link Flags" of the Target, and it will be OK.

(II) Dealing with Unbalanced calls to begin/end appearance transitions for …

One of our businesses has a requirement that after entering a list, a web page needs to be pushed immediately to promote some activities. On iOS 8, our implementation is OK; but on iOS 7, we found that this web page could not be pushed, and the console gave a warning message, as follows:

  1. Unbalanced calls to begin/end appearance transitions for ...

In this case, when you click the back button in the navigation bar, a black screen is displayed directly.

We checked on stackoverflow and found this tip:

  1. occurs when you try and display a new viewcontroller before the current view controller is finished displaying.

This means that an attempt is made to display a new view controller before the current view controller has finished displaying it.

So we checked the code and found that a network request was made in viewDidLoad, and after the request returned, the web event promotion page was pushed. At this time, the current view controller may not show completion (that is, the push operation was not completed).

  1. Basically you are trying to push two view controllers onto the stack at almost the same time.

When two view controllers are pushed to the current navigation controller stack almost at the same time, or two different view controllers are popped at the same time, uncertain results will occur. Therefore, we should ensure that there is only one operation on the same navigation controller stack at the same time, and we should not push or pop a new view controller even if the current view controller is animating.

So *** we put the data request of the web activity in viewDidAppear and did some processing, so the problem was solved

<<:  The iOS promotion and operation master gave me a sudden enlightenment: how to tap into iOS channels, etc.

>>:  Beijing and Shanghai from a programmer's perspective

Recommend

Siberian tigers are on the scene! The "king of the jungle" is not just a saying

Review expert: Wang Lei, National Park and Nature...

You read that right, electrodes can be implanted in the brain!

Produced by: Science Popularization China Author:...

Why you must upgrade to iOS 14.5

Users who have upgraded to iOS 14 will definitely...

Typed yet flexible Table View Controller

[[163982]] UITableView is like bread and butter f...

The leader Dongfang Bubai (Flying Dragon in the Sky 3)

Resource introduction of "The Invincible Eas...